我的代码遇到了麻烦.student类将字符串studName和studRegNum定义为受保护的数据成员。我创建了一个构造函数,该构造函数具有用于初始化数据成员的参数。班级StudentAthlete继承自学生,并且有一个私人数据成员运动,该运动描述了学生参加的运动。这两个类都有一个成员函数identify(),该函数输出学生信息。
运行代码时,我收到错误消息“没有匹配的函数来调用'student :: student()'“
请帮助。我是C ++的新手 下面是我的代码:
#include <iostream>
using namespace std;
class student
{
protected:
string studName;
string studRegNum;
public:
//Constructor prototype
student(string name, string regNo);
void identify();
};
//Constructor for student class
student::student(string name, string regNo):
studName(name), studRegNum(regNo)
{
}
class studentAthlete : public student
{
private:
string member_sport;
string get_member_sport(string member_Sport);
public:
void identify();
studentAthlete(string Sport);
};
studentAthlete::studentAthlete(string Sport):
member_sport(Sport)
{
}
string studentAthlete::get_member_sport(string member_Sport)
{
member_Sport=member_sport;
return member_sport;
}
void studentAthlete::identify()
{
cout<<"Student Name: "<<studName<<endl;
cout<<"Student Registration Number: "<<studRegNum<<endl;
cout<<"Student sport: "<<member_sport<<endl;
}
int main()
{
string studentName, registrationNO, studentSport;//Variables that will hold student information
cout<<"Enter Student name: "<<endl;
cin>>studentName;
cout<<"Enter Registration number: "<<endl;
cin>>registrationNO;
cout<<"Enter Student Sport: "<<endl;
cin>>studentSport;
student st(studentName,registrationNO);
studentAthlete sa(studentSport);
cout<<"Student Details: ";sa.identify();
}
答案 0 :(得分:0)
您在student
中定义了一个构造函数,该构造函数带有两个参数。它没有默认(“无参数”)构造函数,因为您定义了一个。
studentAthlete
。没有构造函数。因此,当您创建studentAthlete
时,它无法构造其基类。有两种简单的解决方案:
student
中创建一个无参数的构造函数studentAthelete
中创建一个构造函数,该构造函数调用您在student
中定义的构造函数