2014-03-13 34 views
1

詳細信息:C++,gcc編譯器。如何從CPP中的頭文件訪問枚舉

說我有一些

: 
class myClass { 
    public: 
    enum color {red, blue}; 
    : 

如何設置可變顏色在我的源文件在那裏我包括在該文件並宣佈

myClass T; 

出於某種原因

一個headerfile

我不能將它設置爲T.color = red;

我得到

error: cannot refer to type member ‘color’ in 
     ‘something::myClass’ with '.' 
    T.color = red; 
    ^
<path of header file>:77:7: note: 
     member ‘color’ declared here 
     enum color {red, blue}; 
      ^

我知道我做錯了這裏..這將是一個很大的幫助,如果有人能告訴我什麼。

回答

2

enum color {red, blue};定義類型enum color但不是字段color。你需要enum color field;enum {red, blue} color;

聲明一個字段中選擇這裏是代碼工作

class myClass { 
    public: 
    enum color_t {red, blue}; 
    enum color_t color; 
    // enum {red, blue} color; // or this 
}; 

int main() { 
    myClass my; 
    my.color = myClass::red; 
    my.color = myClass::blue; 
    return 0; 
} 
+0

我仍然得到同樣的錯誤...... – user1697693

+0

者均基於MyClass類是在不同的頭文件「myClass的。小時「我正在導入..這有什麼區別? – user1697693

+0

除非包含頭文件聲明,否則不能使用'myClass'。即'myClass.h' –