1

私は持っている

enum Direction { NONE = 0, LEFT, RIGHT, FORWARD };

そして機能があります

void displayDirection(int dir)
{ ... }

この関数は int 値を取り、その値に従って「Direction」のメンバーを出力します。どうすればそれが可能になりますか?前もって感謝します。

例: dir = 0 の場合、NONE を出力します。dir = 1 の場合、RIGHT を出力します。等

PS: 私は c++ が初めてです。

4

3 に答える 3

3

印刷するには、それらの「文字列」バージョンが必要です...たとえばchar* szArray[] = { "NONE", "LEFT", "RIGHT", "FORWARD" };、をdisplayDirection介して参照しszArray[dir]ます。境界チェックも適切です...

于 2012-10-29T14:17:47.570 に答える
2

はい、可能です。なぜなら、enum値は内部では整数型だからです。変換は暗黙的であるため、直接呼び出すことができるはずです

displayDirection(3);  //FORWARD 

ただし、関数シグネチャを次のように変更することをお勧めします

void displayDirection(Direction dir)
于 2012-10-29T14:14:26.390 に答える
0

テキスト値、「NONE」、「LEFT」などを印刷したい場合、それは直接可能ではありません。

コンパイルされた実行可能ファイルでは、変数を名前で参照できないのと同じように (例の「dir」のように)、名前が最適化されており、元に戻すことはできません。

したがって、名前を文字列配列に格納して、名前をプログラムに入れる必要があります。

于 2012-10-29T14:19:17.550 に答える