有人能给我一个例子,我们真的需要一个enum作为函数中的参数吗?
答案 0 :(得分: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
}
答案 1 :(得分: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 );
答案 2 :(得分:0)
按钮中的函数setColor,需要获取参数颜色,这应该是枚举。