Zan*_*ith 4 c++ enums coding-style
如果我有一个定义枚举的类,那么返回该枚举的成员函数是应该声明为返回该枚举还是返回一个int?
例如:
class Foo {
public:
enum Stooge { larry, moe, curly};
Stooge WhoToPoke();
// OR: int WhoToPoke(); ???
}
Run Code Online (Sandbox Code Playgroud)
我一直在声明这样一个方法,如返回枚举,但不知道它是'更好的风格'还是以某种方式更可用于客户端,如果我将其声明为int.
在enum提供了呼叫者某种类型的安全...例如,它们不能穿过的int一个时,作为参数Foo::Stooge的预期,或初始化一个Foo ::傀儡与(uncast)int或enum另一种类型的.
BobTFish的评论正确地指出,仍有许多令人讨厌的代码可以编译 - 比我记忆中更多,因为我不会尝试编写错误的代码来继续探讨编译器检查的边缘!对于enum classes,C++ 11对此进行了改进.
此外,如果你添加一个std::ostream& operator<<(std::ostream&, Stooge)函数,那么他们可以传递值 - 实现可以保证一个符号名称(即他们实际上在流中看到"larry","moe"或"卷曲").
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |