c++成员变量初始化
普通变量
在构造函数中进行赋值,如果考虑效率的话,在构造函数的初始化列表中进行赋值。
static变量
static变量属于类所有,不属于任何一个对象。在类中,static成员函数也属于类所有,所以这个函数不接受this指针,因此只能访问static成员变量。
const常量变量
const常量需要在声明的时候即初始化。因此需要在变量创建的时候进行初始化。一般采用在构造函数的初始化列表中对const变量进行初始化。
引用
引用型变量和const变量类似。需要在创建的时候即进行初始化。也是在初始化列表中进行。但需要注意用Reference类型。
1 | class A |
const static integral 变量
对于既是const又是static 而且还是整形变量,可以直接在类的定义中初始化,但是初始化值必须是常量表达式
1 | class A |
注意:
C++11的基本思想是,允许非静态(non-static)数据成员在其声明处(在其所属类内部)进行初始化。这样,在运行过程中,需要初始值时构造函数可以使用这个初始值。
构造函数的调用顺序
1 | 首先,任何虚拟基类的构造函数按照它们被继承的顺序构造; |
1 | #include <iostream> |