1

同じ列挙型が複数の呼び出しに渡されることを伝える必要があります。だから私はこれをやっています:

MiddleEarth::Creatures ally = MiddleEarth::Creatures::Elf;

myEnergy->Transfer(ally, 10);
myLives->Transfer(ally, 1);

どちらの Transfer メソッドも次のように宣言されています。

Energy::Transfer(const Creatures& transferTo, (snip)

ただし、ally という名前の変数の宣言で次の警告が表示されます。

 warning C4482: nonstandard extension used: enum 'MiddleEarth::Creatures' used in qualified name

私は何を間違っていますか?コンパイラの警告が生成されないようにコードを書き直すにはどうすればよいですか?

4

2 に答える 2

7

警告のMSDNページから;

型内で列挙型を参照する場合、列挙型の名前を指定する必要はありません。

int i = S::E::a; // C4482
int j = S::a; // わかった

あなたの場合はそうです。

MiddleEarth::Creatures::Elf

する必要があります

MiddleEarth::Elf
于 2013-06-24T21:28:42.640 に答える
2

あなたはおそらく欲しい:

MiddleEarth::Creatures ally = MiddleEarth::Elf;
于 2013-06-24T21:28:10.437 に答える