第十二周阅读程序(3):多重继承
2015-05-21 13:00
225 查看
代码:
运行结果:
![](http://img.blog.csdn.net/20150521123915667)
学习心得:
声明Base为公有继承的虚基类,而MyDerived为Derived1和Derived2的派生类,系统只执行最后的派生类对虚基类的构造函数的调用,所以Base类的数据成员不会被多次初始化。
#include <iostream> using namespace std; class Base { public: Base(char i) { cout<<"Base constructor. --"<<i<<endl; } }; class Derived1:virtual public Base { public: Derived1(char i,char j):Base(i) { cout<<"Derived1 constructor. --"<<j<<endl; } }; class Derived2:virtual public Base { public: Derived2(char i,char j):Base(i) { cout<<"Derived2 constructor. --"<<j<<endl; } }; class MyDerived:public Derived1,public Derived2 { public: MyDerived(char i,char j,char k,char l,char m,char n,char x): Derived2(i,j), Derived1(k,l), Base(m), d(n) { cout<<"MyDerived constructor. --"<<x<<endl; } private: Base d; }; int main() { MyDerived obj('A','B','C','D','E','F','G'); return 0; }
运行结果:
学习心得:
声明Base为公有继承的虚基类,而MyDerived为Derived1和Derived2的派生类,系统只执行最后的派生类对虚基类的构造函数的调用,所以Base类的数据成员不会被多次初始化。
相关文章推荐
- 第十二周阅读程序(7):多重继承
- 第十二周阅读程序(1):多重继承
- 第十二周阅读程序(2):多重继承
- 第十二周阅读程序(4):多重继承
- 第十二周阅读程序(5):多重继承
- 第十二周阅读程序2:多重继承的构造函数
- 第十二周 阅读程序 多重继承 理解多重继承中构造函数
- 第十二周阅读程序(6):多重继承
- 第12周 《C++语言基础》程序阅读——多重继承(4)
- C++ primer第二次阅读学习笔记(第17章:用于大型程序的工具:多重继承与虚继承) .
- 第十二周 阅读程序 虚基类 中的继承
- 第12周 《C++语言基础》程序阅读——多重继承(2)
- 第十二周 程序填空:多重继承
- 《C++语言基础》程序阅读——多重继承
- 第十二周 阅读项目 多重继承中数据关系
- 第12周 《C++语言基础》程序阅读——多重继承(5)
- 第12周 程序阅读-多重继承1
- 第十二周 阅读程序(1)多重继承
- 第十二周 多重继承-阅读程序(3)
- 第12周 《C++语言基础》程序阅读——多重继承(1)