我遇到了一段时间的问题,当我尝试从纯虚拟类继承时,当我为“儿子”类创建构造函数时,我收到此错误:
../src/Course.cpp:54:77: error: class ‘ElectiveCourse’ does not have any field named ‘_dptr’
这发生在所有受课程保护的字段中。
这是结构:
课程.h:
class Course{
public:
virtual void reg(Student * s) = 0;
..
protected:
...
string _dptr;
...
};
接着:
class ElectiveCourse : public Course{
...
}
课程.cpp:
ElectiveCourse::ElectiveCourse(
string name,
int semester,
double minGrade
)
: _dptr("CS"), _name(name), _semester(semester), _minGrade(minGrade) {
}
像 ElectiveCourse 一样,我还有两个从 Course 类继承的类,并且我在所有这些类中都遇到了相同的错误。[编辑] 这只发生在它们的构造函数中。Course 类中没有构造函数,因此它是纯虚拟的。
另一方面,我也有两个类:Student和CSStudent:Student,其中Student也是纯虚拟的,CSStudent继承Student,在这种情况下没有错误。我对他们两个都做了同样的事情。似乎是什么问题?我很抱歉我的语法错误。
[编辑] 添加了我收到错误的 Course.cpp 部分。
谢谢!