class A { ... private: int &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.需要初始化引用成员数据