私の親クラスであるCourseには、メソッドaddStudent(Student s)があります。私の子クラスであるBetterCourseは、Courseを継承しています。BetterCourse.addStudent(s)を実行しようとするたびに、次のエラーが発生します。
エラー:「BetterCourse :: addStudent(Student(&)())」の呼び出しに一致する関数がありません注:候補は次のとおりです:void Course :: addStudent(Student)
addStudent()がBetterCourseで定義されていないことを示しており、親クラスであるCourseに存在するものを使用することをお勧めしていることを理解しています。継承に関する全体的な考え方は、継承された関数や変数を再定義する必要がないため、これは私を混乱させました。
コースは次のとおりです。
#include <iostream>
#include <string>
#include "Student.h"
using namespace std;
class Course
{
protected:
string id;
string name;
public:
Course();
Course(string id, string name);
void addStudent(Student s);
};
Course::Course()
{
//code
}
Course::Course(string id, string name)
{
//code
}
void Course::addStudent(Student s)
{
//code
}
BetterCourse:
#include <iostream>
#include <string>
#include "Course.h"
using namespace std;
class BetterCourse : public Course
{
public:
BetterCourse(string id, string name) : Course(id,name){};
};