Problem mit der Klassenkommunikation



  • Hallo

    Ich schreibe gerade eine Windows Forms Anwendung und will eine Klasse machen die z.B. ein label in dem Formular ändert. Leider funktioniert das nicht so wie ich mir das vorstelle. Ich habe mal eine kleine Consolenanwendung geschrieben die mein Problem verdeutlicht mit 4 Dateien (KlasseA.h ist quasie mein Form1.h und ClassB ist die Klasse die ich erstellen will):

    Mein Problem ist das beide Klassen sich kennen müssen aber dadurch kriege ich probleme mit #include:

    KlasseA.h

    #include "KlasseB.h"
    
    ref class KlasseA
    {
    public:
    	KlasseA(void);
    	KlasseB ^klasseBHandler;
    };
    

    KlasseA.cpp

    #include "KlasseA.h"
    
    KlasseA::KlasseA(void)
    {
    
     klasseBHandler =gcnew KlasseB(this);
    
    }
    

    KlasseB.h

    #include "KlasseA.h"
    
    ref class KlasseB
    {
    public:
    	KlasseB(KlasseA ^klasseAHandler);
    };
    

    KlasseB.cpp

    #include "KlasseB.h"
    
    KlasseB::KlasseB(KlasseA ^klasseAHandler);
    {
    
    }
    

    Natürlich meckert der Compiler hier, da es zu viele include files gibt.
    Aber wie kann ich das anders machen?

    KlasseA erstellt ein Objekt von KlasseB und will sich selbst als referenz übergeben damit die KlasseB auf die Methoden/Eigenschaften von KlasseA zugreifen kann.

    Viele Danke schonmal für die antworten.



  • Stichwort: Vorwärtsdeklaration



  • Ok, komme von java, wo es diese header dateien nicht gibt.
    Das Stichwort hat mir gut weitergeholfen.
    Danke 🙂


Anmelden zum Antworten