Archiv verlassen und diese Seite im Standarddesign anzeigen : C++: zwei klassen doppelt verknüpfen?
Actionhank
2006-01-27, 11:05:39
gibt es eine möglichkeit für:
class Object1 {
//data
Object2* mpObject2;
};
class Object2 {
//data
Object1* mpObject1;
};
kompilieren kann ichs nicht, weil ich in beiden header jeweils den anderen includen muss. gibt es eine andere möglichkeit dafür???
Neomi
2006-01-27, 11:54:56
Das geht so:
class Object2; // das sagt dem Compiler, daß die Klasse später definiert wird
class Object1 {
//data
Object2* mpObject2;
};
class Object2 {
//data
Object1* mpObject1;
};
Die Implementationsdetails sind da natürlich noch nicht bekannt, also kannst du in der Klassendeklaration nur den Pointer vormerken. Aber in der jeweiligen cpp (die dann beide Header inkludiert) kannst du die andere Klasse dann komplett nutzen.
class Object1;
class Object2 {
//data
Object1* mpObject1;
};
Man braucht nicht die komplette Definition der anderen Klasse, man muss nur sagen dass es eine ist. Die Definition braucht man erst wenn man irgendwelche Operationen aufrufen möchte.
Actionhank
2006-01-27, 13:23:07
super, hat geklappt.
thx
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.