我有类似以下设置的内容:
namespace MyNamespace
{
enum MyEnum{
Type1,
Type2
};
class MyClass
{
private:
void MyFunction( MyEnum::Type1 );
};
}
我会假设因为MyEnum
和MyClass
都在MyNAmespace
内,所以使用类中的枚举类型不会有问题,但是当我尝试编译它时我收到以下错误:
'MyEnum::Type1' is not a type
如何解决此问题,以便在同一命名空间中使用我的枚举和类?
答案 0 :(得分:1)
MyEnum
就是你引用它的方式。
namespace MyNamespace
{
enum MyEnum{
Type1,
Type2
};
class MyClass
{
private:
void MyFunction( MyEnum );
};
}
定义可能如下所示:
namespace MyNamespace
{
void MyClass::MyFunction( MyEnum val) {
if (val == Type1)
std::cout << "Type1" << std::endl;
}
}
答案 1 :(得分:0)
MyEnum::Type1
不是类型。这是一个价值。试试这个:
void MyFunction( MyEnum );
答案 2 :(得分:-1)
键入你的枚举
typedef enum _MyEnum{ Type1, Typ2}MyEnum;