私はVisual StudioでC++でWindows上で作業しています。関数でenumパラメータを使用する
私が持っているクラスがあります、のようなもの、私はステータスを変更するセッターとゲッターを使用する宣言で
enum algorithmStatus { LOADING, DETECTION, TRACKING, LOST };
を:
void MyStatusClass::setAlgorithmStatus(algorithmStatus newStatus)
{
//_Status = newStatus;
//_Status = MyStatusClass::algorithmStatus::LOADING;
}
をしかし、私はできません私は次のようにコンパイルします。
エラー5エラーC2511: 'void MyStatusClass :: setAlgorithmStatus(MyStatusClass :: algorithmStatus)':オーバーロードされたメンバーfuncti 'Nft_Status'に見つかりませんでした。c:\ MyStatusClass.cpp 197
どうすれば正しく設定できますか?
EDIT:ヘッダで
が既にdeclaratedれる:
void setAlgorithmStatus(MyStatusClass::algorithmStatus newStatus);
と:
機能は、私が上に書き込むだけで宣言されているCPPでvoid setAlgorithmStatus(algorithmStatus newStatus);
。
は
に問題を解決し、私はコンストラクタでMyStatusClass :: algorithmStatusを使用して、あなたはMyStatusClass ::を使用する必要が無関心、とあなたはドント場合はそのことをお勧めドントは、それを使用しますそれが必要。
クラスの定義を投稿します。 –
クラス宣言に何か問題があります。クラス内で 'setAlgorithmStatus'を宣言していない可能性があります。あるいは、あなたは間違った方法でその関数を宣言しました。関数の宣言は次のようになります - 'void setAlgorithmStatus(MyStatusClass :: algorithmStatus my_variable);' –
関数のシグネチャは宣言と定義で異なっているかもしれません。 –