Child-Instanz soll auf Variablen der Eltern-Instanz zugreifen



  • Hallo,

    ein eher theoretisches Anfänger-Problem der Objektorientierten Programmierung:

    Die Hauptklasse "A" in einem Programm wird genau ein mal instanziiert.
    Diese Instanz generiert 5 Instanzen einer Klasse "B" (sieht ganz anders aus und hat eigentlich gar nichts mit "A" zu tun.

    Jetzt möchte eine der Instanzen von "B" auf eine public Variable der Instanz "A" zugreifen.

    Wie mache ich das? Gibt es da einen Trick?

    Schöne Grüsse
    Frank



  • FrankEsser schrieb:

    Wie mache ich das? Gibt es da einen Trick?

    Nö, Tricks sind da keine nötig. Entweder du übergibst der B Instanz eine Referenz auf die A-Instanz oder du machst die A-Instanz global zugreifbar. Letzteres ist aber nur in sehr seltenen Ausnahmefällen eine gute Idee.

    Jetzt möchte eine der Instanzen von "B" auf eine public Variable der Instanz "A" zugreifen

    Tu dir selbst einen Gefallen und verzichte auf die Verwendung von öffentlichen Variablen in Klassen.



  • FrankEsser schrieb:

    Jetzt möchte eine der Instanzen von "B" auf eine public Variable der Instanz "A" zugreifen.

    Wie mache ich das?

    #include <boost/noncopyable.hpp>
    
    class B
    {
    public:
    	B();
    };
    
    class A : boost::noncopyable 
    {
    	B b1, b2, b3, b4, b5;
    public:
    	static A &Instance()
    	{
    		static A instance;
    		return instance;
    	}
    
    	int getDummy();
    };
    
    B::B()
    {
    	int dummyA = A::Instance().getDummy();
    }
    

Anmelden zum Antworten