嗨,我有一个名为MyCode.h和MyCode.cpp的文件
在MyCode.h中,我已经声明
enum MyEnum {Something = 0, SomethingElse = 1};
class MyClass {
MyEnum enumInstance;
void Foo();
};
然后在MyCode.cpp中:
#include "MyCode.h"
void MyClass::Foo() {
enumInstance = MyEnum::SomethingElse;
}
但是使用g++编译时出现错误'MyEnum'不是类或 namespace ...
(在MS VS2010上工作正常,但在linux g++上工作不正常)
有任何想法吗?
谢谢
汤玛士
最佳答案
语法MyEnum::SomethingElse
是Microsoft的扩展名。它碰巧是我喜欢的一个,但它不是Standard C++。 enum
值添加到周围的 namespace :
// header
enum MyEnum {Something = 0, SomethingElse = 1};
class MyClass {
MyEnum enumInstance;
void Foo();
}
// implementation
#include "MyClass.h"
void Foo() {
enumInstance = SomethingElse;
}
关于c++ - 我的枚举不是类或 namespace ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5188554/