Parent-Klasse in der Child-Header-Datei unbekannt

Hallo

Ich moechte in einem Child-Objekt gerne einen Zeiger auf das Parent-Objekt haben.

Da ich das allerdings in mehreren Methoden in diesem Child-Objekt haben moechte, moechte ich nicht jedesmal mit GetParent() mir einen Zeiger holen.
Viel Lieber waere mir, wenn ich in der Header-Datei des Child-Objektes einmal einen Zeiger deklariere, der dann einmal mit GetParent() auf das Parent-Objekt „gebogen“ wird.

Also etwa so:

#include „Parent.h“
class CChild : public CDialog
{
CParent* zeiger_auf_Parent;

}

Dann koennte ich Parent-Variablen so ansprechen:

zeiger_auf_Parent->memberVariablevonParent;

Das Problem ist nur, dass er so in der HeaderDatei beim Kompilieren sagt, dass er CParent nicht kennt.
Auch wenn ich vorher mit Include die Header-Datei vom Parent-Objekt einbinde, aendert sich nichts daran.

Meine Loesung zur Zeit sieht so aus:

class CChild : public CDialog
{
void* zeiger_auf_Parent;

}

um dann anschliessend immer einen Typcast zu machen:

((CParent*)zeiger_auf_Parent)->memberVariablevonParent;

das sieht viel unleserlicher aus als das oben.

Wodran liegt es, dass er in der Header-Datei den CParent-Typ nicht kennt (trotz #include „Parent.h“) ?
Gibt es eine einfache Methode das zu Loesen ?

Besten Dank sagt
Martin

Probier einfach mal, im child-header die parent-Klasse per Vorwärtsdeklaration einzubauen, also:

/\* child.h
 \*/

class Parent;

class Child {
 public:
 Parent\* p;
};

Natürlich musst du überall, wo auf Attribute oder Methoden der Parent-Klasse zugegriffen wird die vollständige Klassendefinition haben. Schau vielleicht mal nach, ob die Namespaces übereinstimmen und solche Kleinigkeiten.

Super, Danke !
Vielen Dank !
Das hat geholfen !

Gruss
Martin