Ошибка здесь:
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();
}
Я знаю, что это длинный выстрел , Я не могу написать весь код здесь ...
У вас должна быть некоторая виртуальная функция, объявленная в одном из родительских классов и никогда не реализованная ни в одном из дочерних классов. Убедитесь, что все виртуальные функции реализованы где-то в цепочке наследования. Если определение класса включает в себя чисто виртуальную функцию, которая никогда не реализуется, экземпляр этого класса никогда не может быть создан.