在函数中使用枚举参数 我正在使用VisualStudio在C++中工作Windows。< /P>

在函数中使用枚举参数 我正在使用VisualStudio在C++中工作Windows。< /P>,c++,enumeration,C++,Enumeration,我有一个班级有: enum algorithmStatus { LOADING, DETECTION, TRACKING, LOST }; 在声明中,我想使用setter和getter来更改状态,例如: void MyStatusClass::setAlgorithmStatus(algorithmStatus newStatus) { //_Status = newStatus; //_Status = MyStatusClass::algorithmStatus::LOAD

我有一个班级有:

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);
以及:

在cpp中,函数声明为我写在上面

已解决


问题是我在构造函数中使用了MyStatusClass::algorithmStatus,您不需要使用MyStatusClass:,如果您不需要它,最好不要使用它。

的MSDN文档为您提供了一个很好的列表:

标识符
:在

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

  • 传递给函数的参数错误
  • 参数以错误的顺序传递
  • 参数名称拼写错误

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

    针对的MSDN文档为您提供了一个很好的查找列表:

    标识符
    :在

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

  • 传递给函数的参数错误
  • 参数以错误的顺序传递
  • 参数名称拼写错误


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

    发布类的定义。类声明中有错误。可能您没有在类中声明
    setAlgorithmStatus
    。或者您以错误的方式声明了该函数。函数声明应该如下所示-
    void setAlgorithmStatus(MyStatusClass::algorithmStatus my_变量)函数的签名可能在声明和定义方面有所不同请注意,
    \u S
    是保留给实现的前缀。发布类的定义。类声明中有错误。可能您没有在类中声明
    setAlgorithmStatus
    。或者您以错误的方式声明了该函数。函数声明应该如下所示-
    void setAlgorithmStatus(MyStatusClass::algorithmStatus my_变量)函数的签名在声明和定义方面可能会有所不同。请注意,
    \u S
    是为实现保留的前缀。我已经检查了此项。Visual studio检测枚举。名称没有问题,顺序正确。@Piperoman:您在类中声明的函数是否正确
    MyStatusClass
    ?我认为没有问题,我在标题上这样做:void setAlgorithmStatus(MyStatusClass::algorithmStatus newStatus);像void setAlgorithmStatus(algorithmStatus newStatus)@Piperoman:您需要在头文件中的类内声明函数,并且需要在使用/调用该函数的cpp文件中包含该头文件。该函数将在定义类的cpp文件中定义,为什么要在调用它的cpp文件中再次声明该函数?我已经检查过了。Visual studio检测枚举。名称没有问题,顺序正确。@Piperoman:您在类中声明的函数是否正确
    MyStatusClass
    ?我认为没有问题,我在标题上这样做:void setAlgorithmStatus(MyStatusClass::algorithmStatus newStatus);像void setAlgorithmStatus(algorithmStatus newStatus)@Piperoman:您需要在头文件中的类内声明函数,并且需要在使用/调用该函数的cpp文件中包含该头文件。该函数将在定义类的cpp文件中定义,为什么要在调用该函数的cpp文件中再次声明该函数?
    void setAlgorithmStatus(algorithmStatus newStatus);