我有一个Base类,我无法修改源代码。我从它创建一个派生类,我试图为这个派生类创建一个无参数的构造函数。问题是我无法定义构造函数有两个原因: 没有为基类定义非参数构造函数来使用它。 我无法为基础的构造函数传递默认值。
class base
{
public:
base (A arg)
{
}
};
class derived : public base
{
public:
derived () : base (arg) //ERROR
{
}
};
是否有定义派生类的非参数构造函数的解决方案? Cordialement,
答案 0 :(得分:0)
由于您无法更改基类,因此唯一的选择是将参数传递给其构造函数。通过构造A
的临时实例并将其传递给ctor初始化派生类列表中的基类,可以非常轻松地完成此任务。
derived::derived () : base (A())
{
}
在上面的代码中,base(A())
将创建一个A
的临时实例,并将其传递给base
的构造函数。