| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: Klassen - Probleme im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hey HaBo. Ich hab etwas Probleme mit zwei Klassen Beide haben Zeiger aufeinander, wobei mir jetzt aber leider die ...
![]() |
| | #1 (permalink) |
| Anzeige Hey HaBo. Ich hab etwas Probleme mit zwei Klassen Beide haben Zeiger aufeinander, wobei mir jetzt aber leider die Logik was killt^^. Da beide ja einen Zeiger haben muss die eine Klasse erst den Aufbau der zweiten wissen. Prob ist halt das beide einander vollständig haben wollen um zu laufen, da ich den Fehler mir so vorstelle: define player_H player.h => include world.h define world_h include player_h => bereits defined, fail cWorld hat keine Definition von cPlayer, da die erst nach dem include "world.h" käme. und andersrum. Irgendwelche sauberen Vorschläge wie ich das geregelt bekomme? einen Zeiger auf was anderes und dann Umcasten fände ich nicht so schön und auch blöd wäre es wenn ich auf den cWorld* verzichten müsste.. MfG EDIT: Das gibts nicht >.< Google die ganze Zeit schon und kaum poste ichs find ich die Lösung: #ifndef PLAYER_H #define PLAYER_H class cPlayer;//Hier einmal "Voranlegen" #include <SDL.h> #include "world.h" und das selbe nochmal in der world.h - Voila!
__________________ Be the source always with you. Geändert von ChiefWiggum (18.02.11 um 17:52 Uhr) | |
| | |
| | #2 (permalink) |
| Registriert seit: 28.07.08 ![]() Likes: 1 | Wenn ich dich richtig verstanden habe liegt dein Problem bei den includes. Das ist nen recht allgemeines Problem für das es eine simple Lösung gibt. Code: in includefile "A.h" steht:
class B;
class A
{
B* m_b;
};
in includefile 2 steht:
#include "A.h"
class B
{
A* m_a;
}; Um nen Pointer als Member zu haben reicht dem Compiler zu wissen, dass es den Typ gibt. Das sagst du ihm durch das "class B;", definieren kannst du den Typ dann später. |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |