在c ++中为基类和派生类声明'virtual'构造函数?

时间:2015-10-03 02:09:06

标签: c++ c++11 inheritance constructor

也许这是一个微不足道的问题:我有一个基类B,它有一个带有很多(6+)个参数的构造函数(并且它不稳定,将来可能会改变)。并且有许多从它继承的派生类也具有相同的构造函数签名,并且它们都只是基本的。

所以问题是:有没有办法只在基类中声明一次,而不需要在派生类中声明?就像普通的虚拟功能一样。

我正在使用c ++ 11。

1 个答案:

答案 0 :(得分:4)

您可以继承所有基类构造函数:

struct base {
    base(int, float, void*, bool, std::nullptr_t, std::size_t) { /* ... */ }
};

struct derived : base {
    using base::base;
};



derived d(0,0.0f, nullptr, false, nullptr, 0);