构造函数,哪些成员变量一定要通过初始化列表来初始化?

时间:2021-09-24 19:59:35
class A {
...
privateint &a;
};
class B : public A {
...
private:
     int a;
public:
     const int b;
     A c;
     static const char* d;
     A* e;
};

答案是  b  c

构造函数初始化时必须采用初始化列表一共有三种情况,
1.需要初始化的数据成员是对象(继承时调用基类构造函数)    这一点c符合
2.需要初始化const修饰的类成员                                            这一点b符合
3.需要初始化引用成员数据