C++构造函数用初始化列表进行初始化和构造函数体内赋值进行初始化的区别?
构造函数初始化列表和构造函数体最大的区别是初始化列表是初始化,而函数体内是赋值操作;
对于普通的数据类型两种操作只有资源消耗的区别。但引用和const常量都是不能被赋值的,它们在类内只能在构造函数的参数初始化列表中被初始化。
对于对引用变量和const变量的初始化问题:
在进入构造函数体内时,实际上变量都已经初始化完毕了,即引用变量和const变量都已经用不确定的值初始化好了,构造函数内能做的只有赋值,而const类型和引用类型是不可以赋值的。所以,需要在初始化列表中初始化。