在 C++11 中, 類的數據成員可以在類聲明
中初始化:
- 非靜態的數據成員
- 靜態的常量表達式數據成員
- 靜態的常量數據成員
- 靜態的整形或枚舉類型常量數據成員
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表達式
- C++11 新標準規定,允許將變量聲明為constexpr類型以便由編譯器來驗證變量是否是一個常量表達式。聲明為constexpr 的變量一定是一個常量,而且必須用常量表達式初始化。