我有類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類?
我有類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類?
圓形指針幾乎總是一個壞主意。您可能不需要訪問C->m_data
從整個類B
;只需將它作爲需要查看它的B
方法的參數即可。
你沒有給出足夠的信息,你實際上想達到什麼目的,但是你不需要m_a
(匈牙利語法,blah)來訪問C
的數據。您可以在B
內直接擁有C
成員。
另外,您是什麼意思訪問數據?請注意,無論通過getter方法還是直接訪問C
元素,都會中斷封裝。
C有數據B想訪問。
確定C
(或A
)必須的B
一員?似乎你可以將它作爲參數傳遞。
沒有必要給'class B'一個指向'A'的指針,它可以持有指向'C'的指針,然後就沒有循環邏輯了。 –