Gleiche Instanz in verschiedenen Klassen nutzen



  • Hallo!
    Ich habe eine warscheinlich simple Frage, dennoch komme ich nicht weiter.
    Ich möchte die gleiche Klassen instanz in verschiedenen Klassen nutzen. Beispiel:

    Klasse C;
    
    Klasse B
    B *testB = new C();
    Klasse A;
    A *testA = new C();
    

    Dieses zweimalige verwenden von "new" verursacht bei mir Probleme. Wie kann ich Klasse A die gleiche Instanz wie B (also testB) geben ohne dabei in der Klasse A wieder den new Operator für eine Klasse B Instanz zu verwenden?

    Danke!



  • ZweilagigesPapier schrieb:

    Ich habe eine warscheinlich simple Frage,

    Nein, die Frage ist einfach nur wirr.





  • ZweilagigesPapier schrieb:

    Dieses zweimalige verwenden von "new" verursacht bei mir Probleme.

    zwei new = zwei instanzen.
    ein new = eine instanz.
    die gleiche oder dieselbe?



  • [quote="dove"]
    zwei new = zwei instanzen.
    ein new = eine instanz.
    die gleiche oder dieselbe?[/quote]
    Ich würde gerne in Klasse A und B die selbe Instanz von C benutzen.



  • class C { };
    
    //Klasse A
    class A {
       C* c;
    
    public:
       A(C* c) : c{c} {}
    };
    
    //Klasse B 
    class B {
      C* c
    
    public:
      B(C* c) : c{c} {}
    };
    
    int main () {
       C c; //eine instanz von klasse C
    
       //nutzen derselben instanz durch A und B
       A a{&c};
       B b{&c};
    }
    

    zur info: new hat damit nichts zu tun - dir ist ja egal, woher die eine instanz der klasse C kommt, oder?

    wenn du deinen nächsten beitrag postest, achte darauf, dass die Option "BBCode in diesem Beitrag deaktivieren" nicht ausgewählt ist.


Log in to reply