派生类的初始化列表
来源:互联网 发布:2016京东和淘宝哪个好 编辑:程序博客网 时间:2024/04/30 02:04
说明派生类对象时,
1、先调用各基类的构造函数:这里分两种情况
1.1 显式地在初始化列表中调用基类的构造函数,如 B():A(int )...这样的话,就调用A的有参构造函数
1.2 没有显式调用,编译器把基类的默认构造函数插入到初始化列表中,即B() => B():A()
2、再调用对象成员的构造函数 :这里分两种情况
2.1 在初始化列表中,则直接调用拷贝构造函数
2.2 不在初始化列表中,则先调用对象成员的默认构造函数。如果对象成员没有默认构造函数,会出错。
3、最后调用派生类的构造函数
#include <iostream>#include <stack>#include <time.h>using namespace std;class A{int i;public:A(){cout<<"default A"<<endl;}A(int x):i(x){cout<<"A"<<endl;}~A(){cout<<"~A"<<endl;}A(A& a){cout<<"copy_A"<<endl;}};class B:public A{A _a;int j;public:B(int a,int b,A& aa ):j(b),_a(aa){//_a=a;cout<<"B"<<endl;}~B(){cout<<"~B"<<endl;}};int main() { A a;B b(1,2,a);cout<<"------结束---------"<<endl;}
0 0
- 派生类的初始化列表
- 派生类的构造函数的初始化列表问题
- 派生类的构造函数的初始化列表问题
- 派生类中的成员初始化列表
- 派生类不能在成员初始化列表中直接初始化基类的成员
- 派生类不能在成员初始化列表中直接初始化基类的成员
- 派生类初始化的次序
- 派生类与父类的初始化
- 面向对象的派生类对象初始化
- C++基类、派生类的初始化
- 类的初始化列表
- 类的初始化列表
- 类的初始化列表
- 派生类的虚函数列表
- C++的类初始化列表
- C++类的初始化列表
- c++-类的初始化列表
- C++ 类的初始化列表
- java线程中的interrupt,isInterrupt,interrupted方法
- 编写脚本程序用于监测系统服务http的运行状态
- Qt Model/View 学习笔记 (七)
- JQUERY 选择器
- SQL SERVER 批量导入时候的优化
- 派生类的初始化列表
- STM32相关(基于libopencm3库)
- 一步步教你为网站开发Android客户端
- 控件笔记之鸡啄米
- linux添加环境变量的方法总结
- Android 调用WebAPI
- HBase 学习一: 客户端写缓冲区 autoFlush
- android bitmap 缓存工具类
- Centos设置静态IP