做这样的事情有没有意义:
namespace status{
enum status{
ok,
error
};
}
并像这样使用它status::ok
或者我应该这样做:
enum status{
status_ok,
status_error
};
并像这样使用它status_ok
?
Update:对于 C++11,你现在应该这样做:
enum class status {
ok,
error
};
并像这样使用:status::ok
我个人不喜欢第二种变体,因为status_
部分对我来说似乎多余。前一个版本避免了这个问题,但是有一个类型status::status
看起来也很奇怪。此外,命名空间可以修改,所以万一有人做了类似的事情
namespace status {
void error( const char *msg );
}
你会得到一个编译器错误,因为该函数error
与你的冲突enum
value.
我更喜欢使用第三种变体:
struct MouseButton {
enum Value {
Left, Middle, Right
};
};
这让我可以编写类似的函数
void handleMouseButton( MouseButton::Value b ) {
switch ( b ) {
case MouseButton::Left: // ...
case MouseButton::Middle: // ...
case MouseButton::Right: // ...
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)