将枚举传递给函数 - 按值还是按引用?

Pil*_*pel 5 c++

如果我错了,请纠正我,但是按值传递整数和其他基本数据类型的原因是因为它们占用的内存太小,所以制作该数据类型的指针变量是一种浪费(这可能会在大小至少与数据类型相同)。

这就是为什么我总是int按值将 s 和其他基本类型传递给函数,而其他(更大的)数据类型则通过 const 引用或 const 指针传递。我理解对了吗?

现在我看到许多 API 将enum类型作为 const 引用传递,如下所示:

enum FileOptions { ReadOnly, ReadWrite, WriteOnly };
void processFile(const FileOptions &options);
Run Code Online (Sandbox Code Playgroud)

据我所知,枚举通常被编译器解释为普通整数,那么为什么它们通过引用传递呢?这样做是为了从开发人员那里抽象数据类型,这样他就不会认为FileOptions是整数吗?(尽管确实如此)。

A.F*_*zen 0

你是对的,枚举基本上是一个“const int”。

再猜测为什么某些开发人员选择某种风格是徒劳的。

除非您在非常紧密的循环中调用该函数,否则无论如何都没关系。