В настоящее время я делаю небольшой анализатор для этого простого языка сценариев 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
,
В производном классе у вас есть enum LineType
и его полное имя будет: GUIParser::LineType
,
Таким образом, поскольку вы не можете предсказать имя производного класса, вы не можете заранее объявить, что он будет содержать.
Такова логика, более простой ответ: нет, это не в стандарте.
Других решений пока нет …