Компилятор через свои сообщения об ошибках сообщает вам важные вещи. Если мы возьмем только первое сообщение (всегда полезно позаботиться о проблемах компиляции, начиная с первого возникшего):
parseexception.h:9: error: expected class-name before ‘{’ token
Он говорит вам о необходимости взглянуть на строку 9. В коде есть проблема непосредственно перед "{"
: имя класса неверно. Из этого вы можете сделать вывод, что компилятор может не знать, что такое std :: runtime_error. Это означает, что компилятор не находит «std :: runtime_error» в предоставленных вами заголовках. Затем вам нужно проверить, правильно ли вы добавили заголовки.
Быстрый поиск в справочной документации по C ++ скажет вам, что std :: runtime_error является частью заголовка <stdexcept>
, а не <exception>
. Это распространенная ошибка.
Вы просто должны добавить этот заголовок, и ошибка исчезла. Из других сообщений об ошибках компилятор сообщает вам примерно то же самое, но в конструкторах.
Умение читать сообщения об ошибках компилятора является очень важным навыком, чтобы избежать блокирования при проблемах компиляции.