関数のパラメーターとして列挙型が本当に必要な例を誰かに教えてもらえますか?
10737 次
3 に答える
4
コードをより明確にするだけでなく、C++ ではコンパイル時に関数が可能な値のセットのうちの 1 つだけで動作するように強制します。
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 );
列挙型が使用されていた場合、呼び出し側では、2 番目のパラメーターの意味がより明確になります。
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 関数は、enum である必要があるパラメーター color を取得する必要があります。
于 2012-09-02T08:10:49.790 に答える