初始化列表应用场景一:
假设存在类A代码如下所示
/******A.h******/
class A
{
private:
const int n;
string a ;
public:
A(int,string);
}
/******A.cpp*****/
A(int temp1,string temp2)
{
n = temp1;
a = temp2;
}
该代码存在一定的问题,原因出在成员n身上,因为n是常量成员,所以应该在初始化类对象的时候就对它进行初始化,而对于构造函数来说,大括号里面的代码都是在类对象生成之后才执行的,此时便不能对常量n进行赋值了。
正常的赋值情况应该采用初始化列表:
A(int temp1,string temp2)
:n(temp1),a(temp2)
{
}
注意:
1、这种格式只能用于构造函数
2、必须用这种格式来初始化非静态const成员
3、必须使用这种格式来初始化引用数据成员
初始化列表应用场景二:
应用于类继承中,从实现上理解,在构造函数创建派生类的时候,基类要完成创建(因为子类要从基类中继承成员和方法),假设存在下列代码&