有人可以给我一个例子,我们真的需要一个枚举作为函数中的参数吗?
问问题
10737 次
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 回答