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

0

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

Parser.hpp:

class Parser
{
public:
    enum class LineType;
}

GUIParser.hpp:

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

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

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

  • 2
    Какой компилятор, какая версия, какая операционная система? Вы явно -std=c++11 C ++ 11, например -std=c++11 с GCC 4.8?
Теги:
inheritance
enumerator

1 ответ

5
Лучший ответ

Это объявляет, что там перечисление называется LineType внутри Parser или: Parser::LineType.

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

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

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

  • 0
    Спасибо за подробный ответ!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню