初始化列表与const成员
const成员
使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。
不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。
在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。
初始化列表
在构造函数小括号后面,主要用于给const成员初始化的一种特殊语法,也可以给普通成员初始化(可以解决参数名与成员变量名同名的问题)。
注意:如果有成员是类、结构、联合类型的,还可以在初始化列表中显式调用成员的构造函数,还可以调用父类的构造函数。
class 类名 { 成员变量; public: 构造函数(参数列表):成员变量(初始值),成员变量(初始值),... { } };
#include <iostream> using namespace std; class Test { // 可以使用,但只有C11标准才支持 // const int num = 1234; const int num; public: Test(int num=0):num(num) { cout << "我是带初始化列表的构造函数" << endl; } void show(void) { cout << "const num = " << num << endl; } }; int main(int argc,const char* argv[]) { Test t(123456789); t.show(); return 0; }标签:初始化,const,成员,c++,列表,num,构造函数 From: https://blog.csdn.net/zzt_is_me/article/details/142035577