C++ c+中的枚举+;随随便便

C++ c+中的枚举+;随随便便,c++,enums,C++,Enums,我想尝试调用我的set方法以获取枚举中的值这是我的代码: 枚举h class OS { public: enum OSType{WIN,MAC,UNIX,LINUX}; OStype getOS() const; private: OSType type; }; enum.cpp auto OS::getOS() const ->OSType { return type; } void OS::setOS(OS::OStype t) { type = t; }

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

枚举h

class OS
{ 
 public:
 enum OSType{WIN,MAC,UNIX,LINUX};
 OStype getOS() const;
 private:
 OSType type;
};
enum.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

coutAn
enum
将其成员的名称引入封闭范围。这意味着在
OS
中,当您想使用它们时,只需使用
WIN
MAC
等。这反过来意味着,当您在类范围之外使用它们时,您需要使用scope操作符来访问它们。因此,就像访问类的任何公共静态成员一样,您可以使用

class_name::enum_member_name
还是你的情况

OS::MAC
这意味着您对
setOS
的调用

OS test;
test.setOS(OS::MAC);

enum
将其成员的名称引入封闭范围。这意味着在
OS
中,当您想使用它们时,只需使用
WIN
MAC
等。这反过来意味着,当您在类范围之外使用它们时,您需要使用scope操作符来访问它们。因此,就像访问类的任何公共静态成员一样,您可以使用

class_name::enum_member_name
还是你的情况

OS::MAC
这意味着您对
setOS
的调用

OS test;
test.setOS(OS::MAC);

对不起,你的问题真的很混乱!你想存档什么?我想让我的对象测试得到一个枚举(WIN或UNIX…),这样当我打印出测试时,那里就是WIN或UNIX,你知道我的意思吗?恺:我的C++书中有这个,但是我不知道如何给对象一个列举的资本化:OSTYPE不是一个OSTYPE。
{
。您所写的内容都不会影响任何内容的打印方式。如果您想更改它,则需要重写
operator@Kay哦,是的,你是对的,我写错了!谢谢你的提示!对不起,你的问题真的很混乱!你想存档什么?我想让我的对象测试得到一个枚举(WIN或UNIX…)所以当我打印出测试时,有一个Win或UNIX是你知道我的意思吗?凯:这是我的C++书籍中的,但是我不知道如何给对象一个枚举的资本化:OSTYPE不是一个OSTYPE。{
。您所写的内容都不会影响任何内容的打印方式。如果您想更改它,则需要重写
operator@Kay哦,ups是的,你是对的,我写错了!谢谢你的提示!谢谢你的快速回答!我也可以打印出来,内部测试是MAC吗?@NewUser2810 Like
if(test.getOS()==OS::MAC)
?我在互联网上看到一些网站,他们使用切换案例来检查对象有哪些枚举成员。在我的例子中,什么内部测试需要快速回答!我还可以打印出内部测试是MAC吗?@NewUser2810 Like
if(test.getOS()==OS::MAC)
?我在internet上看到一些网站,它们使用切换案例检查对象的枚举成员。在我的例子中,什么是内部测试