十一周——继承与派生——阅读程序(3)
来源:互联网 发布:北京淘宝供货商 编辑:程序博客网 时间:2024/05/18 01:49
程序代码:
#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 constructor. --E
Derived2 constructor.--B
Derived1 constructor. --D
Base constructor. --F
MyDerived constructor. --G
运行结果:
错误分析:
在调用虚基类的构造函数时,只有最后的的派生类会调用虚基类的构造函数,即开始输出虚基类的内容,而后有一个最后的派生类对虚基类的初始化,所以也会进行输出,还有一点就是两个派生类的顺序即使在初始化时故意调换,但是还是会按照定义派生类的顺序输出
0 0
- 十一周——继承与派生——阅读程序(3)
- 十一周——继承与派生——阅读程序(2)
- 十一周——继承与派生——阅读程序(4)
- 第十、十一周阅读程序 继承和派生(3)
- 第十、十一周阅读程序 继承和派生(3)
- 第十一周——继承与派生——阅读程序(1)
- 第十、十一周阅读程序 继承和派生(2)
- 第十、十一周阅读程序 继承和派生(4)
- 第十、十一周阅读程序 继承和派生(2)
- 第十、十一周阅读程序 继承和派生(4)
- 第十周,十一周阅读项目-继承与派生-3
- 十一周阅读程序(—)
- 十一周——继承与派生——项目二 摩托车继承自行车和机动车
- 第十、十一周阅读程序 继承和派生(1)
- 第十、十一周阅读程序 继承和派生(1)
- 十一周——继承与派生——项目一 教师兼干部类
- 十一周——继承与派生——项目三 日期时间类
- 十一周——继承与派生——项目四 圆的关系
- Linux文件类型
- C 语言中快速排序数组,不额外占用内存空间
- [BZOJ2716][Violet 3]天使玩偶 && kdtree
- Servlet自学第21讲:MVC模式开发的细节讲解
- oracle cursor小例子
- 十一周——继承与派生——阅读程序(3)
- 关于SWT table刷新的一个解决办法
- 公共字串计算
- 《R语言与数据挖掘最佳实践和经典案例》阅读摘要
- java静态代理实现代码
- 关于某社交类app安全分析及app防止反编译的方法
- 调侃《First head 设计模式》之状态模式篇
- Linux系统中如何挂载第二块硬盘
- LeetCode 27 - Remove Element