初始化列表是在构造函数的参数列表后面,用冒号开头,接着列出成员变量的初始化表达式。作用是在对象创建时,对成员变量进行初始化,特别是对const成员变量、引用成员变量和没有默认构造函数的成员对象,必须使用初始化列表进行初始化。
初始化列表和在构造函数体内赋值有什么区别?
初始化列表在进入构造函数体之前就对成员变量进行初始化,效率更高。对于一些需要在构造函数体内进行复杂计算的成员变量,可以先在初始化列表中进行默认初始化,然后在构造函数体内进行赋值。但对于const成员变量和引用成员变量,只能使用初始化列表进行初始化。
如何使用初始化列表初始化多个成员变量:
class Myclass{ public: Myclass(int a,int b):var1(a),var2(b){} //赋值顺序与成员变量声明顺序一致 private: int var1;int var2; }