也许这是一个微不足道的问题:我有一个基类B,它有一个带有很多(6+)个参数的构造函数(并且它不稳定,将来可能会改变)。并且有许多从它继承的派生类也具有相同的构造函数签名,并且它们都只是基本的。
所以问题是:有没有办法只在基类中声明一次,而不需要在派生类中声明?就像普通的虚拟功能一样。
我正在使用c ++ 11。
答案 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);