【发布时间】:2014-03-04 15:45:30
【问题描述】:
下面我使用3层继承设计:
class connect_info {
// these members
};
class vertex : public connect_info {
// ...
};
// user-defined struct
class algo_vertex: public vertex {
// ...
};
connect_info 类的成员(我在这个问题中称之为these members)仅用于vertex 类。但为了保持vertex 类的语义清晰,我必须将these members 与另一个基类(connect_info) 分开。
问题在这里产生:
- 如何从用户定义的类中隐藏这些成员? (
protected和private现在都没有用了,如果没有connect_info基类,private可以正常工作) - 多层继承设计在任何情况下都有意义吗?
- 虚拟解构函数在多层继承情况下能否正常工作?
【问题讨论】:
-
1) 那就不要公开继承 2) 当然
-
不要使用
private继承。让事情变得更简单。同样,这取决于您希望如何构建代码。
标签: c++ class oop inheritance multiple-inheritance