我正在使用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 ::并且如果你不需要它,建议不要使用它。
答案 0 :(得分:4)
error code C2511 的MSDN文档为您提供了一个值得关注的好列表:
中找不到重载的成员函数
identifier
:在class
使用指定的参数声明函数的版本。可能的原因:
- 传递给函数的参数错误。
- 参数传递错误。
- 参数名称的拼写错误。
醇>
始终查找错误代码以获取解决编译错误的帮助。