C++:53---菱形继承、虚继承
一、菱形继承
- 在介绍虚继承之前介绍一下菱形继承
- 概念:A作为基类,B和C都继承与A。最后一个类D又继承于B和C,这样形式的继承称为菱形继承
- 菱形继承的缺点:
- 数据冗余:在D中会保存两份A的内容
- 访问不明确(二义性):因为D不知道是以B为中介去访问A还是以C为中介去访问A,因此在访问某些成员的时候会发生二义性
- 缺点的解决:
- 数据冗余:通过下面“虚继承”技术来解决(见下)
- 访问不明确(二义性):通过作用域访问符::来明确调用。虚继承也可以解决这个问题
演示案例
class A{public:A(int a) :m_a(a) {}int getMa() { return m_a; }private:int m_a;};
class B :public A{public
还没有评论,来说两句吧...