c++ - C/C++ 中枚举作为函数参数

标签 c++ c

有人能给我一个例子,我们真的需要一个枚举作为函数中的参数吗?

最佳答案

除了使代码更清晰之外,在 C++ 中,它在编译时强制函数使用一组可能值中的一个:

namespace Foo
{
enum Bar { A, B, C };

void foo(Bar b) { .... }
void foo2(int i) { /* only ints between 0 and 5 make sense */ }
}


int main()
{
  Foo::Bar b = Foo::A;
  Foo::foo(b);   // OK
  Foo::foo(245); // Compile-time error!
  Foo::foo2(6);  // Compiles, triggering some run-time error or UB 
}

关于c++ - C/C++ 中枚举作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234334/

相关文章:

c - 在 C 中使用 STRUCT 时的命名约定

c - 为什么用 1 和 0 初始化数组会使可执行文件如此之大?

c - 数组成员被最后一个元素覆盖

c++ - 如何使用 STL 容器来保存基于模板的 shared_ptr?

C++ 使用 vector 的二叉树

java - 在 Android 中对最终用户隐藏 JNI 代码

c++ - 一个简单的加减乘除程序

c++ - 如何创建哈希表

iphone - 如何增加/减少 Unsigned Char?

带有套接字的 c 可移植性代码