C++必须使用【初始化列表】初始化数据成员的三种情况

您所在的位置:网站首页 在类中声明的成员包括 C++必须使用【初始化列表】初始化数据成员的三种情况

C++必须使用【初始化列表】初始化数据成员的三种情况

2024-07-16 14:20| 来源: 网络整理| 查看: 265

类对象的构造顺序是这样的:

1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员;

2.进入构造函数后在构造函数中执行一般赋值与计算。

使用初始化列表有两个原因:

原因1.必须这样做:

《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表:

   情况一、需要初始化的数据成员是对象的情况(这里包含了继承情况下,通过显示调用父类的构造函数对父类数据成员进行初始化); 

   情况二、需要初始化const修饰的类成员或初始化引用成员数据;

   情况三、子类初始化父类的私有成员;

 ■情况一的说明:数据成员是对象,并且这个对象只有含参数的构造函数,没有无参数的构造函数;

     如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,而没有默认构造函数,这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。

例子:

#include "iostream" using namespace std; class Test { public: Test (int, int, int){ cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3