«Невозможно выделить объект абстрактного типа« Ошибка

Ошибка здесь:

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();
}

Я знаю, что это длинный выстрел , Я не могу написать весь код здесь ...

29
задан gustafbstrom 27 January 2017 в 13:26
поделиться

1 ответ

У вас должна быть некоторая виртуальная функция, объявленная в одном из родительских классов и никогда не реализованная ни в одном из дочерних классов. Убедитесь, что все виртуальные функции реализованы где-то в цепочке наследования. Если определение класса включает в себя чисто виртуальную функцию, которая никогда не реализуется, экземпляр этого класса никогда не может быть создан.

15
ответ дан 28 November 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: