В настоящее время я делаю небольшой небольшой парсер для этого простого графического интерфейса GUI, который я создаю. Все работает нормально, но мне нужно знать, можно ли это сделать:
Parser.hpp:
class Parser
{
public:
enum class LineType;
}
GUIParser.hpp:
class GUIParser : public Parser
{
public:
enum class LineType
{
BACKGROUND,
BUTTON,
LABEL,
RADIOBOX,
COMMENT
};
}
Это дает мне ошибку, но если это возможно, то какую синтаксическую ошибку я могу сделать?
Спасибо за любую помощь!
Это объявляет, что там перечисление называется LineType
внутри Parser
или: Parser::LineType
.
В производном классе у вас есть перечисление под названием LineType
, а его полное имя будет: GUIParser::LineType
.
Поэтому, поскольку вы не можете предсказать имя производного класса, вы не можете переслать объявление, что он будет содержать.
Что логика этого, более простой ответ: нет, это не в стандарте.
-std=c++11
C ++ 11, например-std=c++11
с GCC 4.8?