0

Driver と FilterOut という 2 つのクラスがあります。Driver には、int として正しく FilterOut に渡した lights という列挙型があります。これを列挙型として行う方法がわかりません。

Driver クラスの列挙型

enum lights{yellow, green, red, blue};

これは私にとってはうまくいきました。

void FilterOut::LightIn(int light)
  {
       switch(light);
  }

やりたいこと。

void FilterOut::LightIn(lights light)
  {
       switch(light);
  }

これといくつかのバリエーションを試しましたが、うまくいきませんでした。何かアイデアはありますか? また、Driver のものと同じ列挙型を FilterOut に含めようとしましたが、現在はどちらかが機能しています

4

1 に答える 1

4

列挙型がDriverクラスにある場合は、その名前を修飾する必要があります。

class FilterOut {
 public:
  void LightIn(Driver::lights light);
};

void FilterOut::LightIn(Driver::lights light)
{
   switch(light);
}

関数を呼び出すときは、ルックアップ スコープも修飾する必要があります。

FilterOut f;
f.LightIn(Driver::red);
于 2012-08-14T19:09:18.960 に答える