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