C++类中的数据成员能否在定义类时初始化
在复习c++时,注意到书上对于数据成员的“初始化”没有详细说明
几道往年题搞得我很懵
一般数据成员可以在构造函数中初始化。(构造初始化列表初始化/构造函数体内赋值初始化)
class A{ public:
A(int a ):an (a){}
private: int an ; };
//or
class A{ public:
A(int d ){
an = d;
}
private: int an; };
但是const数据成员必须在构造函数的初始化列表中初始化
class A{ public:
A(int a ):an (a){}
private: const int an ; };
转载-----(道理很简单,const成员第一次数据初始化就是发生在类构造数据初始化时,一旦过了此时就会出现问题)。
static要在类的定义外面初始化。
数组成员是不能在初始化列表里初始化的,不能给数组指定明显的初始化。