2013-11-22 136 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