一:首先我们来看一下哪些成员变量必须通过构造函数的初始化列表(在构造函数体内赋值也不行)来初始化:
1》const常量成员:
因为常量初始化,不能赋值,所以必须放在初始化列表中进行初始化。
****************************************************************************************************************************************************************
***************************************************************************************************************************************************************************************
*************************************************************************************************************************************************************************************
2》引用类型,引用类型在定义的时候初始化,并且不能重新赋值,所以也要在初始化列表中进行初始化
*************************************************************************************************************************************************************************************
3》没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数
(继承时调用基类的构造函数)
***************************************************************************************************************************************************************************************
二:static数据成员
因为static 属于类并不属于具体的对象,所以static成员不允许在类初始化,包括static const,因为它在未实例化的时候就已经存在了,
一个跟对象没有直接关系的成员肯定不会在参数列表中初始化,它们都必须在类外定义(初始化,只有静态常整型成员才可以在类中初始化)
************************************************************************************************************************************************************************************
*****************************************************************************************************************************************************************************************
对于静态类类型成员变量可以这样初始化:
好啦,以上就先整理这么多了,如果不对或者还有更多,还望指正和补充!!!!!!!!!!!!!!!!!!!!!!!!!!!!!