2014-03-13 39 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' –