クラス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
、からのデータにアクセスするために(ハンガリアン記法、何とか)必要はありませんC
。内に直接C
メンバーを持つことができB
ます。
また、アクセスデータとはどういう意味ですか?C
getterメソッドを介してか直接かに関わらず、要素にアクセスするとカプセル化が解除されることに注意してください。
CにはBがアクセスしたいデータがあります。
本当にC
(またはA
)のメンバーである必要がありB
ますか?パラメータとして渡すことができるようです。