-6

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

4

3 回答 3

4

除了使代码更清晰之外,在 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 
}
于 2012-09-02T08:09:39.410 回答
2

不需要枚举,但它们使软件更具可读性。例子:

void write( const std::string&, bool flush );

现在调用方:

write( "Hello World", true );

如果使用了枚举,则在调用方会更清楚第二个参数的含义:

enum flush_type { flush, no_flush };
void write( const std::string&, flush_type flush );

再次调用方:

write( "Hello World", flush );
于 2012-09-02T08:07:35.630 回答
0

按钮中的setColor函数,需要获取参数color,应该是enum。

于 2012-09-02T08:10:49.790 回答