Rekursive Includes



  • Hallo

    ich nehme pro Klasse ein Paar .cpp/.h .
    Klasse A benötigt Attribute von Klasse B und Klasse B
    benütigt Attribute von Klasse A.

    Wenn ich in klasse_a.h
    #include "klasse_b."
    schreibe und in klasse_b.h
    #include "klasse_a.h"

    (genauer schreibe ich natürlich:
    #if !defined KLASSE_B
    #include "klasse_b.h"
    #define KLASSE_B
    #endif
    )

    dann setzt es eine Fehlermeldung wie "Incluces zu tief geschachtelt".
    Das sehe ich auch ein. Aber wie *vermeidet* man solche zirkulären
    Includes am besten ? Vom Prinzip "eine Klasse - ein Paar .cpp/.h"
    will ich ungern abweichen.



  • Normalerweise reicht für die Deklaration der jeweiligen Klassen eine Forward-Deklaration der anderen Member:

    //A.H
    class B;
    
    class A
    {
      ...
    private:
      B* my_b;
      ...
    };
    
    //A.CPP
    #include "A.H"
    #include "B.H"
    //Definition der A-Methoden
    

    (das Dateipaar für B wird analog aufgebaut)



  • Danke; werde es gleich ausprobieren.
    Grüße


Anmelden zum Antworten