C 多重继承三角
C++ Multiple Inheritance Triangle
这种继承树是否存在问题:
Parent ---- Subject
| /
| /
Child --/
或代码:
class Subject
{
public:
void AddObserver( Observer *aObserver );
protected:
ObserversList mObserversList;
};
class Parent: public Object,
public virtual Subject
{
};
class Child: public Parent,
public virtual Subject
{
};
在汇编方面,这种继承有没有问题。由于Child
的两个基础都是virtual
继承。
唯一必须知道的是,尽管构建 Parent()
,但构造顺序将为 Subject()
,然后是 Object()
。同样的事情适用于Child()
。该订单将为Subject()
,Object()
,Parent()
。
相关文章:
- 关于C++中具有多重继承"this"指针的说明
- C++中模板化异常类的多重继承
- 虚拟继承中是否存在多重继承?
- 如何在 c++ 多重继承中调用父非虚函数?
- 多重继承相同的方法名,没有歧义
- 使用enable_if解决多重继承歧义
- 多重继承导致虚假的模糊虚拟函数过载
- 多重继承和访问不明确的元素
- C++ 多重继承:使用基类 A 的实现实现基类 B 的抽象方法
- 多重继承中的派生类的行为类似于聚合
- 为什么我的 Hippomock 期望在使用多重继承时失败
- 带有此指针的模板类多重继承构造函数不起作用?
- 使用多重继承时出现编译错误
- 增强多重继承的序列化
- 多重继承:跳过'virtual'关键字并拒绝菱形层次结构的使用?
- 仅函数的多重继承 - 没有虚拟和 CRTP
- C++多重继承和鸭子类型
- C++两次从文件保存对象读取多重继承
- 从多重继承中的派生类函数调用适当的父类函数
- C 多重继承三角