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をどのように設計しますか?

4

2 に答える 2

1

円形のポインタは、ほとんどの場合、悪い考えです。C->m_dataおそらく、クラス全体からアクセスする必要はありませんBBそれを見る必要のあるメソッドへの引数としてそれを渡すだけです。

于 2012-06-19T20:19:00.220 に答える
1

実際に達成したいことについて十分な情報を提供していませんがm_a、からのデータにアクセスするために(ハンガリアン記法、何とか)必要はありませんC。内に直接Cメンバーを持つことができBます。

また、アクセスデータとはどういう意味ですか?Cgetterメソッドを介してか直接かに関わらず、要素にアクセスするとカプセル化が解除されることに注意してください。

CにはBがアクセスしたいデータがあります。

本当にC(またはA)のメンバーである必要がありBますか?パラメータとして渡すことができるようです。

于 2012-06-19T20:19:12.467 に答える