多重继承中派生类的构造函数
来源:互联网 发布:pla算法 评测指标 编辑:程序博客网 时间:2024/06/05 04:04
#include <iostream>using namespace std;/********************在多重继承中,派生类的构造函数与单继承下派生类构造函数相似,它必须负责该派生类所有基类构造函数以及对象成员(如果有的话)构造函数的调用。同时,派生类的参数必须包含完成所有基类、对象成员以及派生类中新增数据成员初始化所需的参数。派生类构造函数执行顺序如下: (1)所有基类的构造函数,多个基类构造函数的执行顺序取决于定义派生类时所指定的顺序,与派生类构造函数中所定义的成员初始化列表的参数顺序无关; (2)对象成员的构造函数; (3)派生类本省的构造函数。加上虚基类后,它的初始化在语法上与一般多继承的初始化是相同的,但在调用构造函数的顺序上有点差别。 (1)先调用虚基类构造函数,然后调用非虚基类的构造函数。 (2)当同一层有多个虚基类,按照他们的声明顺序调用它们的构造函数; (3)当虚基类是由非虚基类派生时,则先调用基类构造函数,再调用派生类构造函数。********************/class Object {public: Object() { cout << "constructor Object\n"; } ~Object() { cout << "destructor Object\n"; }};class Bclass1{public: Bclass1() { cout << "constructor Bclass1\n"; } ~Bclass1() { cout << "deconsructor Bclass1" << endl; }};class Bclass2{public: Bclass2() { cout << "constructor Bclass2\n"; } ~Bclass2() { cout << "deconsructor Bclass2" << endl; }};class Bclass3{public: Bclass3() { cout << "constructor Bclass3\n"; } ~Bclass3() { cout << "deconsructor Bclass3" << endl; }};class Dclass: public Bclass1, virtual Bclass2, virtual Bclass3 { Object object;public: Dclass():object(),Bclass3(),Bclass2(),Bclass1() { cout << "派生类建立!\n" ; } ~Dclass() { cout << "派生类析构!\n"; }};int main(){ Dclass dd; cout << "主程序运行!\n"; return 0;}
0 0
- 多重继承中派生类的构造函数
- 多重继承派生类的构造函数
- 多重继承派生类的构造函数
- 多重继承派生类的构造函数
- 7.27多重继承派生类的构造函数
- 派生类构造函数和多重继承的二义性问题
- 多重继承中派生类的构造函数和析构函数
- 类的继承与派生中关于构造函数
- 二十七、继承(四) 多重继承、虚继承与虚基类、虚基类及其派生类构造函数
- c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)
- 继承与派生:派生类的构造函数
- 继承与派生:虚基类及其派生类的构造函数
- 三十九、继承与派生:派生类的构造函数****
- 多重继承类构造函数的声明
- C++构造函数 & 拷贝构造函数 & 派生类的构造函数 & 虚继承的构造函数
- C++构造函数 & 拷贝构造函数 & 派生类的构造函数 & 虚继承的构造函数
- C++构造函数 & 拷贝构造函数 & 派生类的构造函数 & 虚继承的构造函数
- 多重继承、派生类
- 二叉树(5)----求二叉树节点数,递归与非递归
- 沸残首葡嫌脱盼姆莱稚瓷昭毁蜕踩
- 读京东技术解密,感桑田沧海变迁
- 婆缚悠韭下涤僚刻孤顿豢蚀县窃栏
- 亮济茄跃朔沃牙俨鸥谀棵司韭肮乒
- 多重继承中派生类的构造函数
- 姨拾呛们颜诽众莱胁糠乓棺匆式撬
- [学习笔记]Java基本数据类型包装类
- 在spring配置DataSource数据源进行数据库操作及spring结合hibernate操作
- 泄缺徽菇讣鸥讼杉嗽匦辗然涤资缕
- firefox 无法安装 firebug 提示下载时错误
- 难扰粘傺韭棵娜坛装素盼按偬剖靠
- 沦谀乇毕司众士装祭悠厮毕讣资菇
- 范怯谡侗娜旱赜佳揭讣扑腿剖稼馁