在函数中使用enum参数

时间:2012-03-19 09:49:19

标签: c++ enumeration

我正在使用Visual Studio在C ++中使用Windows。

我的课程有:

enum algorithmStatus { LOADING, DETECTION, TRACKING, LOST };

在声明中,我想使用setter和getter来改变状态,例如:

void MyStatusClass::setAlgorithmStatus(algorithmStatus newStatus)
{
    //_Status = newStatus;
    //_Status = MyStatusClass::algorithmStatus::LOADING;
}

但我无法编译,因为我得到了:

  

错误5错误C2511:'void MyStatusClass :: setAlgorithmStatus(MyStatusClass :: algorithmStatus)':在'Nft_Status'中找不到重载的成员函数c:\ MyStatusClass.cpp 197

如何正确设置该设置器?

修改

标题已经声明:

    void setAlgorithmStatus(MyStatusClass::algorithmStatus newStatus);

void setAlgorithmStatus(algorithmStatus newStatus);

在cpp中声明函数只是我写在上面。

解决

问题是我在构造函数中使用了MyStatusClass :: algorithmStatus,你不需要使用MyStatusClass ::并且如果你不需要它,建议不要使用它。

1 个答案:

答案 0 :(得分:4)

error code C2511 的MSDN文档为您提供了一个值得关注的好列表:

  

identifier:在class

中找不到重载的成员函数      

使用指定的参数声明函数的版本。可能的原因:

     
      
  1. 传递给函数的参数错误。
  2.   
  3. 参数传递错误。
  4.   
  5. 参数名称的拼写错误。
  6.   

始终查找错误代码以获取解决编译错误的帮助。