在这种情况下,圆形指针是否正常?

时间:2012-06-19 20:16:21

标签: c++ pointers

我有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级?

2 个答案:

答案 0 :(得分:1)

圆形指针几乎总是一个坏主意。您可能不需要访问整个班级C->m_data中的B;只需将其作为参数传递给需要查看它的B方法。

答案 1 :(得分:1)

您没有提供有关您实际想要实现的内容的足够信息,但您不需要m_a(匈牙利表示法,等等)来访问C中的数据。您可以在C内直接拥有B成员。

另外,访问数据是什么意思?请注意,访问C元素,无论是通过get getter方法还是直接访问,都会破坏封装。

  

C有数据B想要访问。

您确定C(或A)必须是B的成员吗?好像您可以将其作为参数传递。