给超类的非const成员赋予初始值?(C++)

Joh*_*ohn 1 c++ inheritance

我想知道如何让子类具有初始化的非const成员.例如,我可以拥有一个带有私有整数成员'index'的超类.初始化子类时,我希望'index'始终以相同的值(0)开头.

因为我希望子类拥有它自己的构造函数,未来的程序员可能不知道将'index'初始化为0,我怎样才能确保它以所需的值开始?

谢谢!

Bar*_*rry 8

只需index在其默认构造函数中将超类初始化为零:

class SuperClass {
    int index;

public:
    SuperClass()
    : index(0)
    { }
};
Run Code Online (Sandbox Code Playgroud)

构造期间的任何子类都将首先调用其所有继承类的构造函数 - 因此只要超类正确初始化其内部,子类将全部继承它.