我有一个类,里面的代码:
public:
static enum AnimalTypes {Mammals, Fish, Birds, Horse, MammalsFish, Flamingo, GoldFish, Mermaid};
但是然后我得到这个警告:
Warning C4091 'static ': `ignored on left of 'const Zoo::AnimalTypes' when no variable is declared Line 269`
是什么原因导致此问题?
最佳答案
从您的注释中可以看出,您正在尝试声明一个枚举类型AnimalTypes
,该类型可以在代码中的所有类中使用。
对于Globel enmu,请在头文件中使用以下方法。
#ifndef HEADER_H
#define HEADER_H
enum AnimalTypes {Mammals, Fish, Birds, Horse, MammalsFish, Flamingo, GoldFish, Mermaid};
可以从任何班级访问
AnimalTypes at = Mammals;
但是,如果在类中声明枚举,则访问样式会有所不同。
class Base
{
public:
enum AnimalTypes {Mammals, Fish, Birds, Horse, MammalsFish, Flamingo, GoldFish, Mermaid};
...
};
访问方式
Base::AnimalTypes bat = Base::Mammals;
您不应使用
static
声明枚举类型。但是您可以使用它来声明类变量。关于c++ - 静态枚举忽略类内的警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52039762/