首页 > 解决方案 > 试图继承一个类具有带参数的构造函数 - c++

问题描述

我有两个类,我想继承其中一个具有带参数的构造函数的类,但是出现错误。

头等舱:

class stack{
 stack(int variable){

}

...code...
};

二等:

class Expression : public stack{

//class constructor
Expression(){

}

...code...

};

我得到的错误...

在构造函数 'Expression::Expression()':error: no matching function for call to 'stack::stack()'

注意:候选:stack::stack(int)

注意:候选人期望 1 个参数,提供 0 个参数

注意:候选:constexpr stack::stack(const stack&)

注意:候选:constexpr stack::stack(stack&&)

标签: c++inheritance

解决方案


我在网上搜索过,没有找到任何可以帮助我解决这些错误的东西。

但是经过多次尝试,我找到了解决方案……如果您有更好的方法来解决这些错误或用更好的词或更科学的词来描述我的解决方案,请分享。

解决方案:问题出在语法上......从堆栈类继承的第二个类“Expression”应该有一个如下定义的构造函数......

class Expression : public stack{

  // How the constructor should be defined.
  Expression():stack(parameter_value){

}

...code...
};

因此,整个代码将如下所示:

class stack{
 stack(int variable){

}

...code...
};

class Expression : public stack{

  // How the constructor should be defined.
  Expression():stack(parameter_value){

}

...code...
};

推荐阅读