-6

関数のパラメーターとして列挙型が本当に必要な例を誰かに教えてもらえますか?

4

3 に答える 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 に答える