C++ c+中的枚举+;随随便便
我想尝试调用我的set方法以获取枚举中的值这是我的代码: 枚举hC++ 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; }
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
coutAnenum
将其成员的名称引入封闭范围。这意味着在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 Likeif(test.getOS()==OS::MAC)
?我在互联网上看到一些网站,他们使用切换案例来检查对象有哪些枚举成员。在我的例子中,什么内部测试需要快速回答!我还可以打印出内部测试是MAC吗?@NewUser2810 Likeif(test.getOS()==OS::MAC)
?我在internet上看到一些网站,它们使用切换案例检查对象的枚举成员。在我的例子中,什么是内部测试