Referenzen auf Pointer?
-
Hallo.
Ist folgendes Beispiel standardmäßig und zeigen GetPointer und GetReference auf das selbe Objekt, oder wird bei GetReference eine Kopie erzeugt :/?class Test { public: Test(int test) : m_Test(test) { } ~Test() { } int GetTest() const { return this->m_Test; } private: int m_Test; }; class Manager { public: Manager(Test &MyTest) : m_pTest(&MyTest) { } ~Manager() { } Test *GetPointer() const { return this->m_pTest; } Test &GetReference() const { return *this->m_pTest; } private: Test *m_pTest; }; // ... Test a(22); Manager b(a); Test *c = b.GetPointer(); Test &d = b.GetReference(); // c->GetTest() sollte 22 sein // d.GetTest() sollte ebenfalls 22 seinFrage ist nun, ob
dauf das Original oder auf eine Kopie zeigt?Gruß
-
Die Address-Of-Operator angewendet auf eine Referenz liefert den Zeiger auf das Objekt, das die Referenz referenziert.
Was ich mich frage - wo du doch schon so ein ausgefeiltes Beispiel hast... Warum probierst du es nicht einfach aus?^^
Zur zweiten Frage: Nein, der Zeiger wird dereferenziert und somit wird eine Referenz auf das "angezeigte" Objekt zurückgeliefert. Will meinen GetPointer und GetReference geben Zeiger respektive Referenz auf das selbe Objekt zurück.
-
Gute Idee .
Test *c = b.GetPointer(); std::cout << c << std::endl; Test &d = b.GetReference(); std::cout << &d << std::endl;Gibt jeweils die gleiche Adresse zurück. Das heißt, mein Vorhaben klappt? Widerspricht aber deiner Antwort

Edit: Doch nicht. Danke!