c++中各类型成员变量的不同方式的初始化

一:首先我们来看一下哪些成员变量必须通过构造函数的初始化列表(在构造函数体内赋值也不行)来初始化:

1》const常量成员:

因为常量初始化,不能赋值,所以必须放在初始化列表中进行初始化。

****************************************************************************************************************************************************************

c++中各类型成员变量的不同方式的初始化

***************************************************************************************************************************************************************************************

c++中各类型成员变量的不同方式的初始化

*************************************************************************************************************************************************************************************

2》引用类型,引用类型在定义的时候初始化,并且不能重新赋值,所以也要在初始化列表中进行初始化

c++中各类型成员变量的不同方式的初始化             c++中各类型成员变量的不同方式的初始化                                      c++中各类型成员变量的不同方式的初始化

*************************************************************************************************************************************************************************************

3》没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数

(继承时调用基类的构造函数)

c++中各类型成员变量的不同方式的初始化


***************************************************************************************************************************************************************************************

二:static数据成员

因为static 属于类并不属于具体的对象,所以static成员不允许在类初始化,包括static const,因为它在未实例化的时候就已经存在了,

一个跟对象没有直接关系的成员肯定不会在参数列表中初始化,它们都必须在类外定义(初始化,只有静态常整型成员才可以在类中初始化)c++中各类型成员变量的不同方式的初始化

c++中各类型成员变量的不同方式的初始化

************************************************************************************************************************************************************************************

c++中各类型成员变量的不同方式的初始化


*****************************************************************************************************************************************************************************************

c++中各类型成员变量的不同方式的初始化

对于静态类类型成员变量可以这样初始化:

c++中各类型成员变量的不同方式的初始化

好啦,以上就先整理这么多了,如果不对或者还有更多,还望指正和补充!!!!!!!!!!!!!!!!!!!!!!!!!!!!!