如何声明默认构造函数

时间:2014-12-25 13:06:32

标签: c++ mfc

我有一个Base类,我无法修改源代码。我从它创建一个派生类,我试图为这个派生类创建一个无参数的构造函数。问题是我无法定义构造函数有两个原因: 没有为基类定义非参数构造函数来使用它。 我无法为基础的构造函数传递默认值。

  class base
  {
      public:
      base (A arg)
      {

      }
  };

  class derived : public base
  {
      public:
      derived () : base (arg)  //ERROR
      {

      }
  };

是否有定义派生类的非参数构造函数的解决方案? Cordialement,

1 个答案:

答案 0 :(得分:0)

由于您无法更改基类,因此唯一的选择是将参数传递给其构造函数。通过构造A的临时实例并将其传递给ctor初始化派生类列表中的基类,可以非常轻松地完成此任务。

derived::derived () : base (A())
{
}

在上面的代码中,base(A())将创建一个A的临时实例,并将其传递给base的构造函数。