我有一个类,里面的代码:

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/

10-12 18:26