我有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级?
答案 0 :(得分:1)
圆形指针几乎总是一个坏主意。您可能不需要访问整个班级C->m_data
中的B
;只需将其作为参数传递给需要查看它的B
方法。
答案 1 :(得分:1)
您没有提供有关您实际想要实现的内容的足够信息,但您不需要m_a
(匈牙利表示法,等等)来访问C
中的数据。您可以在C
内直接拥有B
成员。
另外,访问数据是什么意思?请注意,访问C
元素,无论是通过get getter方法还是直接访问,都会破坏封装。
C有数据B想要访问。
您确定C
(或A
)必须是B
的成员吗?好像您可以将其作为参数传递。