2016-04-23 40 views
-3

我知道,当我分配一个对象到另一个,然后他们有相同的地址。但我想形象化,但它没有按照我的概念显示。但有过两次对象t1和t2是那些对象,我在T2根据概念T1和T2的地址应该是相同的分配T1,它是打印不同/查询有关对象的地址,而我们正在分配一个对象到另一个

#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

“我们知道”,接下来是完全废话...... –

+2

您指的是“我们”是谁?这似乎是一个有着一些奇怪信念的团体。 – juanchopanza

+1

你似乎对指针和对象有点困惑 – Thomas

回答

3

你“知道”什么是错的。一个对象是内存中的一个存储区域。因此,根据定义,两个不同的对象必须具有不同的地址。 t1t2是不同的对象。有了这个初始化:

Test t2 = t1; 

t2是一个新的对象。它的初始值(在本例中为成员a,b和c)从t1复制而来,但它们是完全独立的对象,具有不同的地址。更改一个不会影响另一个。

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

我有你的概念和谢谢 –

相关问题