虚拟继承中是否存在多重继承?
Is there Multiple inheritance in Virtual inheritance?
如果虚拟继承直接继承了两个类,那么只有第一个类被虚拟继承继承了吗?二是普通传承之道?
class Student : virtual public Person, virtual public Woman;
这样的代码存在吗?
如果存在,是否只有第一个类(学生(被虚拟继承继承?第二个(老师(是普通传承之道?
多重继承意味着一个类具有多个直接基类。 句号。
class Student: public Person, public Woman { }; // multiple inheritance -- two direct bases
任何基类都可以虚拟继承:
class Student: public virtual Person { }; // virtual inheritance
如果多重继承符合您的设计,则可以将其与虚拟继承结合使用:
class Student: public virtual Person, public Woman { };
class Student: public Person, public virtual Woman { };
class Student: public virtual Person, public virtual Woman { };
virtual
继承表明,无论虚拟基数用作基数多少次,都只能有一个虚拟基数实例:
class base { };
class der1 : public virtual base { }; // one base subobject
class der2 : public virtual base { }; // one base subobject
class top: public der1, public der2 { } ; // one base subobject
如果它不是虚拟的,你会得到多个相同类型的子对象:
class base { };
class der1 : public base { }; // one base subobject
class der2 : public base { }; // one base subobject
class top : public der1, public der2 { }; // two base subobjects, one each from der1 and der2
相关文章:
- 关于C++中具有多重继承"this"指针的说明
- C++中模板化异常类的多重继承
- 虚拟继承中是否存在多重继承?
- 如何在 c++ 多重继承中调用父非虚函数?
- 多重继承相同的方法名,没有歧义
- 使用enable_if解决多重继承歧义
- 多重继承导致虚假的模糊虚拟函数过载
- 多重继承和访问不明确的元素
- C++ 多重继承:使用基类 A 的实现实现基类 B 的抽象方法
- 多重继承中的派生类的行为类似于聚合
- 为什么我的 Hippomock 期望在使用多重继承时失败
- 带有此指针的模板类多重继承构造函数不起作用?
- 使用多重继承时出现编译错误
- 增强多重继承的序列化
- 多重继承:跳过'virtual'关键字并拒绝菱形层次结构的使用?
- 仅函数的多重继承 - 没有虚拟和 CRTP
- C++多重继承和鸭子类型
- C++两次从文件保存对象读取多重继承
- 在 OMNeT++ 中使用多重继承时是否存在任何已知问题
- 在多重继承中,被重写的虚方法保存在c++的虚表中