2016-04-23 68 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

我有你的概念和謝謝 –

相關問題