多重继承中派生类的构造函数和析构函数
来源:互联网 发布:考普通话的软件 编辑:程序博客网 时间:2024/05/29 15:28
#include<iostream>using namespace std;class Base1{public: Base1(int i) { cout<<"Constructing Base1 "<<i<<endl; }};class Base2{public: Base2(int j) { cout<<"Constructing Base2 "<<j<<endl; }};class Base3{public: Base3() { cout<<"Constructing Base3 *"<<endl; }};class Derived:public Base1,public Base2,public Base3{public: Derived(int a,int b,int c,int d):Base1(a),Base2(b),number1(c),number2(d){}private: Base1 number1; Base2 number2; Base3 number3;};int main(){ Derived obj(1,2,3,4); return 0;}
运行结果:
心得:
1、调用基类构造函数,调用顺序按照他们被继承时声明的顺序(从左向右)
2、对本类成员初始化列表中的基本类型成员和对象成员进行初始化,初始化的顺序按照他们在类中声明的顺序,对象成员初始化是自动调用对象所属类的构造函数完成。
3、执行派生类的构造函数体的内容。
对比:
#include<iostream>using namespace std;class Base1{public: Base1(int i) { cout<<"Constructing Base1 "<<i<<endl; }};class Base2{public: Base2(int j) { cout<<"Constructing Base2 "<<j<<endl; }};class Base3{public: Base3() { cout<<"Constructing Base3 *"<<endl; }};class Derived:public Base2,public Base1,public Base3{public: Derived(int a,int b,int c,int d):Base1(a),Base2(b),number1(c),number2(d){}private: Base1 number1; Base2 number2; Base3 number3;};int main(){ Derived obj(1,2,3,4); return 0;}
运行结果:
0 0
- 多重继承中派生类的构造函数和析构函数
- 多重继承派生类的构造函数
- 多重继承派生类的构造函数
- 多重继承派生类的构造函数
- 多重继承中派生类的构造函数
- 派生类构造函数和多重继承的二义性问题
- 7.27多重继承派生类的构造函数
- 【c++继承】继承关系中派生类对象构造函数和析构函数调用顺序
- c++学习笔记5,多重继承中派生类的构造函数与析构函数的调用顺序(二)
- 继承的三种方式与派生类的构造函数和析构函数~
- 第十一周阅读程序1:继承与派生类的构造函数和析构函数
- 派生类生成过程——单继承的构造函数和析构函数
- 派生类生成过程——单继承的构造函数和析构函数(2)
- 继承与派生3:派生类的构造函数与析构函数
- 派生类的构造函数和析构函数和多继承中的二义性与虚函数
- 类的继承与派生中关于构造函数
- 派生类的构造函数和析构函数
- 派生类的构造函数和析构函数
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
- 栈的基本操作
- SQL之merge
- 第九周项目二我的数组类
- 第九周项目3——人数不定的工资类
- 多重继承中派生类的构造函数和析构函数
- Handler消息传递机制
- angularjs结构
- Error:Execution failed for task ‘:app:clean’.
- HDU 1248 寒冰王座(完全背包)
- Android开发报错:GoogleApiClient.isConnected()' was expected to be of type interface but instead was ...
- 顺序串的基本操作
- abap的select语句结果集对多个字段排序
- 项目1-深复制体验(2)