Error is here:
vector<Graduate *> graduates;
graduates.push_back(new AliceUniversity(identifier,id,salary,average));
Grandparent class:
Graduate::Graduate(char identifier,
long id,
int salary,
double average)
: _identifier(identifier),
_id(id),_salary(salary),
_average(average)
{
}
Parent class:
UniversityGraduate::UniversityGraduate(char identifier,
long id,
int salary,
double average)
: Graduate(identifier,id,salary,average)
{
}
Actual/child class:
AliceUniversity::AliceUniversity(char identifier,
long id,
int salary,
double average)
: UniversityGraduate(identifier,id,salary,average)
{
_graduateNum++;
_sumOfGrades += average;
_avrA = getAverage();
}
I know it's a long shot, I cant write the entire code hereā¦
This question is related to
c++
vector
data-structures
pure-virtual
You must have some virtual function declared in one of the parent classes and never implemented in any of the child classes. Make sure that all virtual functions are implemented somewhere in the inheritence chain. If a class's definition includes a pure virtual function that is never implemented, an instance of that class cannot ever be constructed.
Source: Stackoverflow.com