繁体   English   中英

如何声明默认构造函数

[英]how to declare default constructor

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

  class base
  {
      public:
      base (A arg)
      {

      }
  };

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

      }
  };

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

由于您无法更改基类,因此剩下的唯一选择就是将参数传递给其构造函数。 通过构造A的临时实例并将其传递给派生类的ctor初始化列表中的基类,您可以非常容易地做到这一点。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM