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从整个班级访问B;只需将它作为参数传递给B需要查看它的方法。

于 2012-06-19T20:19:00.220 回答
1

您没有提供有关您实际想要实现的目标的足够信息,但您不需要m_a(匈牙利符号,等等)从C. 你可以直接在C里面有一个成员B

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

C 有 B 想要访问的数据。

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

于 2012-06-19T20:19:12.467 回答