在C++中,我创建了一个叫做parent的基类。在这个类中,我创建了一个可以带一个参数的构造函数。我的子类名是child。在我的子类中没有任何构造函数。我的代码如下:
#include<iostream>
using namespace std;
class parent{
public:
parent(int number){
cout<<"Value of the number from parent class is: "<<number<<endl;
}
};
class child: public parent{
public:
child(): parent(10){
}
};
int main()
{
child ob(100);
return 0;
}
当我尝试运行上面的代码时,编译器“显示没有与调用'child::child(int)'匹配的函数”。
我不想在子类中创建任何参数化的构造函数。如何传递父类构造函数的值?如何解决这个问题?
4条答案
按热度按时间sbdsn5lh1#
您有三种选择:
1.不使用参数,仅使用
child
默认构造1.创建一个
child
构造函数,它接受所需的参数(可能带有默认值)1.将
parent
构造函数拉入child
类:jucafojl2#
我怎样才能解决这个问题?
在子类中添加using声明
using parent::parent;
。z9smfwbn3#
在您的
main
方法中,您尝试使用int
作为参数从child
类调用构造函数。此错误源于缺少此构造函数。要将number
传递给父类,您需要如下构造函数:在
child
类中。jfgube3f4#
在第一个注解中给出了单级继承中这类问题的解决方案。但在多级继承的情况下,我们可以通过以下方式解决: