首页 > 代码库 > 初始化列表来初始化

初始化列表来初始化

有一个类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即为此类型。

初始化列表来初始化