Adresse der einen Klasse in einer anderen Klasse speichern



  • Hallo!

    Ich bekomm das irgendwie nicht hin:

    #include <iostream>
    
    class A
    {
    };
    
    class B
    {
    	public:
    		unsigned int Set_Adress(A &address){ address = address; };
    
    		A *address;  
    };
    
    int main()
    {
    	A *bla  = new A;
    	B *blub = new B;
    
    	blub->Set_Adress(bla);
    
    	return(0);
    }
    

    Wie macht man das?



  • mist, da will man m_ weglassen damit man nicht geflamed wird und dann passieren solche sachen 😡 , so hier:

    #include <iostream>
    
    class A
    {
    };
    
    class B
    {
    	public:
    		unsigned int Set_Adress(A &address){ m_address = address; };
    
    		A *m_address;  
    };
    
    int main()
    {
    	A *bla  = new A;
    	B *blub = new B;
    
    	blub->Set_Adress(bla);
    
    	return(0);
    }
    

    C:\Programme\Microsoft Visual Studio\MyProjects\Neuer Ordner\test.cpp(12) : error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class A' akzeptiert (oder keine geeignete Konvertierung moeglich)
    C:\Programme\Microsoft Visual Studio\MyProjects\Neuer Ordner\test.cpp(25) : error C2664: 'Set_Adress' : Konvertierung des Parameters 1 von 'class A *' in 'class A &' nicht moeglich
    Ein Verweis, der nicht auf ein 'const' zeigt, kann nicht an einen Wert gebunden werden, bei dem es sich nicht um einen L-Wert handelt
    Fehler beim Ausführen von cl.exe.



  • unsigned int Set_Adress(A &address){ m_address = address; }
    

    A& address ist eine Referenz.
    Versuch mal A* address.

    mfg, KdeE



  • [cpp]
    unsigned int Set_Adress(A &address/*Das ist ne Referenz*/){ m_address = **&**address/*Du willst ja die Adresse*/; };
    [/cpp]



  • stimmt ja 😕 ok danke


Anmelden zum Antworten