Как реализовать конструктор подкласса абстрактного базового класса? - PullRequest
0 голосов
/ 18 октября 2018

Итак, у меня есть схема UML, которой я должен следовать, и я реализовал большую часть класса Exam, однако я сталкиваюсь с двумя проблемами:

UML Digram

Проблема № 1:

csc232::pd::Exam::Exam(double points) {

}

, которая затем дает мне ошибку,

"Конструктор для 'csc232 :: pd :: Exam' должен явно инициализировать базовый класс 'csc232 :: pd:: Задание ', в котором нет конструктора по умолчанию "

Проблема №2:

GradeType csc232::pd::Exam::getGrade() const {
return nullptr;
}

, из-за которой возникает ошибка, что GradeType не определен.

Если кто-то будеттак любезно, чтобы указать мне правильное направление, чтобы исправить эти ошибки, я бы очень сильно воспользовался этим.В настоящее время я работаю только над реализацией базового класса Assignment и подкласса Exam.Если вам нужна дополнительная информация, просто дайте мне знать.(

1 Ответ

0 голосов
/ 18 октября 2018

Первая ошибка совершенно ясна, просто инициализируйте базовый класс, вызвав конструктор.

csc232::pd::Exam::Exam(double points) : Assignment( points ) {
}

Вторая ошибка - результат неполного определения типа возвращаемого значения Grade.Grade является членом csc232::pd, поэтому вам нужно написать:

csc232::pd::GradeType csc232::pd::Exam::getGrade() const {
  return nullptr;
}
...