将枚举作为函数参数传递

Dou*_*ble 0 c++ c++11

这是一个说明我的问题的简化示例.以下给出了:错误C2065:'状态':未声明的标识符

myclass.h

class MyClass
{
    enum class State { IDLE, WALK_RIGHT, WALK_LEFT };
    void SetState(State);
}
Run Code Online (Sandbox Code Playgroud)

myclass.cpp

#include "myclass.h"
void SetState(State state)
{
    //...
}
Run Code Online (Sandbox Code Playgroud)

知道这里有什么问题吗?提前致谢!

T.C*_*.C. 5

这不是您在类定义之外定义成员函数的方式.你需要

void MyClass::SetState(State state){
//   ^^^^^^^^^
}
Run Code Online (Sandbox Code Playgroud)

编译器会StateMyClass看到MyClass::SetState并知道这是一个成员函数定义之后知道要查找,所以你不必MyClass::State在这里写.