Можно ли переслать объявление класса enum для использования в производном классе?

В настоящее время я делаю небольшой анализатор для этого простого языка сценариев GUI, который я создаю. Все работает нормально, но мне нужно знать, возможно ли это сделать:

Parser.hpp:

class Parser
{
public:
    enum class LineType;
}

GUIParser.hpp:

class GUIParser : public Parser
{
public:
        enum class LineType
        {
            BACKGROUND,
            BUTTON,
            LABEL,
            RADIOBOX,
            COMMENT
        };
}

Это дает мне ошибку, но если это возможно, то какую синтаксическую ошибку я делаю?

Спасибо за любую помощь!

1 ответ

Решение

Это говорит о том, что есть перечисление под названием LineType внутри Parser или же: Parser::LineType,

В производном классе у вас есть enum LineTypeи его полное имя будет: GUIParser::LineType,

Таким образом, поскольку вы не можете предсказать имя производного класса, вы не можете заранее объявить, что он будет содержать.

Такова логика, более простой ответ: нет, это не в стандарте.

Другие вопросы по тегам