我有一个抽象基类,需要将一些对象传递给它的构造函数来初始化它的成员。但我想摆脱通过派生类构造函数传递这些对象。
class Derived : public Base
{
public:
Derived(type one, type two, type three) : Base(one, two, three)
{
// ...
传递给基类的对象与所有已创建的派生类的实例相同。有没有办法将它们绑定到基类的构造函数,这样我就不必通过派生类的构造函数转发它们了?
// do some magic
// ...
class Derived : public Base
{
// no need for an explicit constructor anymore
// ...
答案 0 :(得分:1)
在C ++ 11中,您可以将构造函数继承到基类。看来这大致可以满足您的需求:
class derived
: public base {
public:
using base::base;
// ...
};