我想知道如何让子类具有初始化的非const成员。例如,我可以拥有一个带有私有整数成员'index'的超类。初始化子类时,我希望'index'始终以相同的值(0)开始。
由于我希望子类拥有它自己的构造函数,未来程序员可能不知道将'index'初始化为0,我如何确保它以所需的值开始?
谢谢!
答案 0 :(得分:8)
只需让超类在其默认构造函数中将index
初始化为零:
class SuperClass {
int index;
public:
SuperClass()
: index(0)
{ }
};
构造期间的任何子类都将首先调用其所有继承类的构造函数 - 因此只要超类正确初始化其内部,子类将全部继承它。