Cas*_*ton 23 c++ performance enums const-reference
这里有两个相关的问题:
A)如何实现枚举?例如,如果我有代码:
enum myType
{
TYPE_1,
TYPE_2
};
Run Code Online (Sandbox Code Playgroud)
究竟发生了什么?我知道您可以将TYPE_1和TYPE_2视为整数,但它们实际上只是整数?
B)基于该信息,假设传入的枚举不需要更改,将myType作为值或const引用传递给函数会更有意义吗?
例如,哪个是更好的选择:
void myFunction(myType x){ // some stuff }
Run Code Online (Sandbox Code Playgroud)
要么
void myFunction(const myType& x) { // some stuff }
Run Code Online (Sandbox Code Playgroud)
Mar*_*ett 20
速度方面几乎肯定无所谓 - 任何体面的C++编译器都只会传递一个int.
重要的一点是可读性 - 这将使您的代码对读者更加明显?
如果很明显这些枚举真的只是整数,那么我会按价值传递它们,就好像它们是整数一样.使用const ref可能会让程序员三思而行(绝不是个好主意!)
但是 - 如果您稍后要用类替换它们,那么保持API相同并强制执行const-ness可能是有意义的.
| 归档时间: |
|
| 查看次数: |
9592 次 |
| 最近记录: |