有一个类B继承子类,他们数据成员如下:
class A{ ... private: const int a; }; class B : public A{ ... private: int a; public: const int b; A c; static const char* d; A& e; }; 则这些成员变量一定要通过A或者B的构造函数初始化列表来初始化的是( ) 解析:常量必须在初始化列表中初始化,否则,由于常量无法修改,在其他任何地方做为左值出现都将报错;A::a、B::b即为此类型;其中,A::a在类B中由B::a覆盖,但B::c必须经过类A的初始化列表才能初始化。引用类型必须初始化,因此也只能在初始化列表中初始化;A& e即为此类型。
时间: 2024-10-10 21:22:53