错误在这里:
vector<Graduate *> graduates;
graduates.push_back(new AliceUniversity(identifier,id,salary,average));
祖父母班:
Graduate::Graduate(char identifier,
long id,
int salary,
double average)
: _identifier(identifier),
_id(id),_salary(salary),
_average(average)
{
}
父班:
UniversityGraduate::UniversityGraduate(char identifier,
long id,
int salary,
double average)
: Graduate(identifier,id,salary,average)
{
}
实际/儿童课:
AliceUniversity::AliceUniversity(char identifier,
long id,
int salary,
double average)
: UniversityGraduate(identifier,id,salary,average)
{
_graduateNum++;
_sumOfGrades += average;
_avrA = getAverage();
}
我知道这是一个远景,我不能在这里写整个代码…
答案
在C ++中至少一个纯虚拟功能叫做abstract class。您无法创建该类别的对象,但可能只有指针或引用。
如果您是从抽象类派生的,请确保您覆盖并定义了类的所有纯虚拟功能。
从你的片段里你的班级AliceUniversity
似乎是一个抽象类。Graduate
和UniversityGraduate
。
纯虚拟功能是= 0;
在宣言结束时。
例子:virtual void doSomething() = 0;
对于特定的答案,您需要发布获得错误的类别的定义以及该类得出的类的类别。