如果我理解正确,则始终使用创建派生类的对象来调用基类构造函数。有没有办法在创建派生对象时调用重载的基类构造函数?
答案 0 :(得分:5)
是的,通过初始化列表:
class Base
{
public:
Base (int n) : mN(n) {}
private:
int mN;
};
class Derived : public Base
{
public:
Derived() : Base (42) {};
// ^^^^^^^^^^^
// Initialization List
};
有关初始化列表语法的更多信息,请参阅此问题:
What is this weird colon-member (" : ") syntax in the constructor?