2011-01-19 48 views
0

這是我的問題:訪問從1個類創建的「鄰居」類可能嗎?

我有1類創建兩個其他類的新實例,現在我需要有一個實例直接可用到另一個,這是可能的,如果又怎樣?

這樣:

在A類:

b = new B(5); // where 5 is an int data member of B 
c = new C(); 

,讓B ::蜂()是我需要從C()來訪問一個功能但是,我需要訪問的成員B(不是B的新實例)由A創建。

So C::getIntfromB(){ 
    b->getInt(); 
} 

或者什麼。

我試着去爲:

b = new B(5); 
c = new C(*b); 

有對C

一個B b;私有成員但是由於某種原因,我根本無法正常的工作,什麼是我作出了明顯的錯誤?

+0

發佈有問題的代碼 – YeenFei 2011-01-19 10:03:55

回答

0

您的C會員應該是指針或參考(B *bB &b)。如果它是B它將複製你的B對象,所以它會引用一個不同的實例(通過複製你感興趣的實例來創建它)。此外,您需要將您的b對象作爲指針或引用傳遞,否則將在傳遞參數時創建新實例,並且您的類中的指針/引用將引用該對象。 (這也將導致其他問題,因爲這樣的副本將是一個暫時得到儘快銷燬C的構造函數返回)

0

主要的原因你的對象Ç不能從對象B分別接入正確的數據是因爲C有其自己的副本對象B'而不是參考現有的同級對象B

相關問題