2 Klassen die sich gegenseitig kennen?



  • Hi

    Wie schaffe ich es am elegantesten dass sich 2 Klassen gegenseitig kennen? Auch wenn ich gegenseitig include Anweisungen für die Header in die jeweiligen Headerdateien einfüge, kann ich nicht als Membervariablen Zeiger auf die jeweils andere Klasse benutzen. Visual C++ meckert dann, dass er die Klasse nicht kennt.

    Danke
    Stefan



  • forward deklaration.



  • Geht aber trotzdem. Schau mal in den FAQ nach. Da müsste das eigentlich beschrieben stehen.

    Binde die "Klasse2.h" in "Klasse1.h" ein und schreibe über "class Klasse2{...}" einfach ein "class Klasse1**;**". Dann "kennen die sich".
    EDIT: Peter the Master" war schneller...

    [ Dieser Beitrag wurde am 11.06.2003 um 19:18 Uhr von MaSTaH editiert. ]



  • klappt leider nicht. ich kriege immer noch die Meldung
    error C2027: use of undefined type 'CF_Lader'

    Beide Klassen sind Kindklassen einer Vaterklasse. Als Membervariable hat jede einen Zeiger auf die andere Klasse, z.b
    CF_Lader* myLader;

    In den Klassen wird kein Objekt initialisiert, nur der Zeiger an passender Stelle mit dem Wert der anderen Klasse beschrieben. Aber wie gesagt, es geht nicht
    Danke trotzdem

    Stefan



  • a.h
    
    class B;
    
    class A
    {
     B * b;
    
    };
    
    a.cpp
    #include "a.h"
    #include "b.h"
    
    ---------------
    
    b.h
    
    class A;
    class B
    {
     A * a;
    };
    
    b.cpp
    
    #include "b.h"
    #include "a.h"
    

Anmelden zum Antworten