初始化列表:
class Stu
{
public:
Stu():m_stuName("Merry"),m_stuAge(20){}
private:
string m_stuName;
int m_stuAge;
};
初始化列表的特性
1.初始化列表先于构造函数执行。
2.初始化列表只能用于构造函数。
3.初始化列表可以同时初始化多个数据成员,效率高,速度快。
注意:初始化列表中的成员变量的初始化顺序只与成员变量在类中定义的顺序有关,而与初始化列表中成员变量的出现顺序无关。
初始化列表存在的重要性
既然有了构造函数,为什么还需要初始化列表呢?
在某些情况下:
class Circle
{
pubilc:
Circle(){m_pi=3.14}//编译出错
Circle():m_pi(3.14){}//正确
private:
const int m_pi;//常量和引用在定义时需进行初始化,如果不想初始化
int &m_pi2;//只能借用初始化列表来完成。
};