2013-11-22 2 views
0

Я объявленный следующее перечисление в заголовке моего класса:C++: Функция, которая возвращает перечисление

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'. – cHao

+0

Вы ** определили ** перечисляемый тип в ** определении ** вашего класса. Это может быть или не быть в файле заголовка, но здесь это не имеет значения. –

ответ

3

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

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

И причина, по которой это работает, когда параметр «eTagType» является параметром, заключается в том, что параметры * * оцениваются в рамках класса. Кажется непоследовательным, но нет, если вы понимаете, с чем должен работать парсер. –

+0

Я тебя люблю, ты прекрасна! :-) – tmighty

Смежные вопросы