C ++: функция, которая возвращает перечисление

0

Я объявил следующее перечисление в заголовке моего класса:

class clsWString2
{


public:

    enum eTagType
    {
        TT_UNDEFINED,
        TT_RATEABSSPEED,
        TT_VOLUMELEVEL,
        TT_RATESPEED,
    };

Теперь я создал частную функцию в файле cpp:

eTagType clsWString2::wstringToTagType(wstring u)
{
     ...
}

Это не работает. Компилятор сообщает мне, что "eTagType не определен".

Может кто-нибудь помочь, пожалуйста?

Следующие работы:

void clsWString2::wstringToTagType(wstring u, eTagType &uRetValue)

... но мне не нравится эта функция, я предпочитаю, чтобы функция возвращала значение, и я также хотел бы знать, что я делаю неправильно.

Спасибо вам за помощь!

  • 0
    Имя типа будет clsWString2::eTagType .
  • 0
    Вы определили перечислимый тип в определении вашего класса. Это может или не может быть в файле заголовка, но где это происходит, не имеет значения здесь.
Теги:
enums
visual-studio-2012

1 ответ

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

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

clsWString2::eTagType clsWString2::wstringToTagType(wstring u) { ... }
  • 1
    И причина , это работает , когда eTagType является параметром является то , что параметры вычисляются в области видимости класса. Кажется непоследовательным, но не в том случае, если вы понимаете, с чем должен работать парсер.
  • 0
    Я люблю тебя, ты великолепен! :-)

Ещё вопросы

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