C++11成员初始化
C98成员初始化:
1、就地初始化 等号
静态常量整形或枚举成员 (注意:浮点型不行)
2、静态非常量成员必须在.cpp中初始化
3、初始化列表:
1. 数据成员为const类型
2. 数据成员为引用类型
3. 成员类没有默认的拷贝构造
4. 派生类的构造函数初始化列表必须调用基类的构造函数
C11成员初始化:
1、就地初始化 等号= 或者 花括号{}
非静态的数据成员
静态的常量表达式数据成员
静态的常量数据成员
静态的整形或枚举类型常量数据成员
class X {
int i = 5;
const float f = 3.12f;
static const int j = 42;
static constexpr float g = 9.5f;
static constexpr int m[3] = {0,1,2};
}
注:其中 int m[3] 为整型数组数据成员, 所以应该用constexpr表达式
2、静态非常量成员必须在.cpp中初始化
3、使用初始化列表的情况比较少

浙公网安备 33010602011771号