2012-06-19 90 views
0

我有類A,B和C.圓形指針在這種情況下是否正常?

A具有成員B和C.

C具有數據B想要訪問。

我正在考慮做這樣的事情,並想問這是否是好的設計。

class A{ 
B* m_b; 
C* m_c; 
}; 

class B{ 
A* m_a; // so that i can get access to C->m_data 
}; 

class C{ 
vector<Obj*> m_data; 
} 

您將如何設計B類?

+0

沒有必要給'class B'一個指向'A'的指針,它可以持有指向'C'的指針,然後就沒有循環邏輯了。 –

回答

1

圓形指針幾乎總是一個壞主意。您可能不需要訪問C->m_data從整個類B;只需將它作爲需要查看它的B方法的參數即可。

1

你沒有給出足夠的信息,你實際上想達到什麼目的,但是你不需要m_a(匈牙利語法,blah)來訪問C的數據。您可以在B內直接擁有C成員。

另外,您是什麼意思訪問數據?請注意,無論通過getter方法還是直接訪問C元素,都會中斷封裝。

C有數據B想訪問。

確定C(或A)必須的B一員?似乎你可以將它作爲參數傳遞。

相關問題