使用 set 和 get 的 c++ 中的枚举

Enum in c++ with set and get

本文关键字:c++ 枚举 get set 使用      更新时间:2023-10-16

我想尝试调用我的set方法来获取枚举中的值,这是我的代码:

枚举.h

class OS
{ 
 public:
 enum OSType{WIN,MAC,UNIX,LINUX};
 OStype getOS() const;
 private:
 OSType type;
};

枚举.cpp

auto OS::getOS() const ->OSType
{ return type;
 }

void OS::setOS(OS::OStype t)
{ 
  type = t;
}

现在我想在 main 中调用该方法

 OS test;
 test.setOS();  //what should i write inside this () ?
 test.getOS();  //return the value which was set;

我知道在枚举中以 WIN = 0、MAC = 1 开头......但我不能只在里面写一个数字或?我怎样才能在测试中给出哪个枚举值?

cout<<test<<endl

这可能行得通吗?

enum将其

成员的名称引入封闭范围。 这意味着在OS里面,当你想使用它们时,你只需要使用WINMAC等。 这反过来意味着当您在类范围之外使用它们时,您需要使用 scope 运算符来访问它们。 因此,就像访问类的任何公共静态成员一样,您可以使用以下命令获取enum

class_name::enum_member_name

或在您的情况下

OS::MAC

这意味着您打电话给setOS

看起来像
OS test;
test.setOS(OS::MAC);