![](/img/trans.png)
[英]How to define and declare a struct when the constructor is used for a default argument?
[英]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.