C++ 初始化列表详解
发布网友
发布时间:2024-09-30 07:33
我来回答
共1个回答
热心网友
时间:2024-11-11 22:03
什么是初始化列表
C++的初始化参数列表是指在类的构造函数中使用冒号(:)后面跟着的一系列参数,注意一下:
它用于在创建对象时对成员变量进行初始化,
红色圈起来的部分,就是构造函数的初始化列表,以冒号开始,冒号后面依次列出需要赋值的成员变量和值。
初始化列表有什么特点
看一份代码:
运行结果:
其实
上面的语法等同于如下语法
假设有一个类 C,具有多个字段 X、Y、Z 等需要进行初始化,同理地,您可以使用上面的语法,只需要在不同的字段使用逗号进行分隔,如下所示:
C::C( double a, double b, double c): X(a), Y(b), Z(c) { .... }
为什么需要用初始化列表
因为使用初始化列表给成员变量设定初始值效率会更高,建议优先使用这种方法。对于基础类型的变量,比如int,bool类型,则没有必要非要采用初始化列表。
C++的初始化需要注意的地方
应该遵循以下几点:
1.避免在初始化列表中引用其他成员变量
2.顺序一致性:成员变量的初始化顺序是按照它们在类中声明的顺序
举一个例子
结果是:
Size: 50 Capacity: 4202400 Length: 6422384
初始化列表中引用其他成员变量的方式来初始化length_、capacity_和size_。然而,由于类成员的初始化顺序是按照它们在类中声明的顺序进行的,可能导致length_与capacity_并没有按照我们期望的方式初始化。
修改后:
运行结果:
Size: 50 Capacity: 52 Length: 52