2016-04-23 7 views
-3

Ich weiß, dass, wenn ich ein Objekt zu einem anderen zuweisen, dann haben sie beide die gleiche Adresse.aber ich wollte das visualisieren, aber es zeigt nicht nach meinem Konzept.i hatten zwei Objekt T1 und t2 derjenigediejenigedasjenige Objekte sind, und ich bin die Zuordnung t1 in t2 und nach dem Konzept t1 und Adresse t2 gleich sein soll, aber es wird Druck verschiedenen/Abfrage über die Adresse des Objekts, während wir ein Objekt zu einem anderen zuweisen

#include <bits/stdc++.h> 

using namespace std; 
class Test 
{ public: 
int a=1,b=2,c=2; 
}; 


int main() 
{ 
Test t1; 
Test t2=t1; 
cout<<(&t2)<<endl<<(&t1)<<endl; 
cout<<t2.a<<" "<<t1.a<<endl; 
t1.a=10; 
    cout<<t2.a<<" "<<t1.a<<endl; 

} 
+3

„Wir wissen, dass“ von völliger Unsinn gefolgt ... –

+2

Wer ist dieses „wir“ Sie sich beziehen? Es scheint eine Gruppe mit seltsamen Überzeugungen zu sein. – juanchopanza

+1

Sie scheinen ein wenig verwirrt über Zeiger und Objekte – Thomas

Antwort

3

Was Sie „wissen“, ist falsch. Ein Objekt ist eine Speicherregion im Speicher. Daher müssen zwei verschiedene Objekte definitionsgemäß unterschiedliche Adressen haben. t1 und t2 sind verschiedene Objekte. Bei dieser Initialisierung:

Test t2 = t1; 

t2 ist ein neues Objekt. Sein Anfangswert (die Mitglieder a, b und c, in diesem Fall) wird von t1 kopiert, aber sie sind vollständig separate Objekte mit unterschiedlichen Adressen. Änderungen an einem werden sich nicht auf den anderen auswirken.

t2.a = 77;  // no effect on t1.a 
+0

Ich habe Sie Konzept und danke –

Verwandte Themen