将枚举作为函数参数传递

时间:2015-02-22 00:04:04

标签: c++ c++11

这是一个说明我的问题的简化示例。以下为我提供:错误C2065:'状态':未声明的标识符

myclass.h

class MyClass
{
    enum class State { IDLE, WALK_RIGHT, WALK_LEFT };
    void SetState(State);
}

myclass.cpp

#include "myclass.h"
void SetState(State state)
{
    //...
}

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

1 个答案:

答案 0 :(得分:5)

这不是你如何定义类定义之外的成员函数。你需要

void MyClass::SetState(State state){
//   ^^^^^^^^^
}

编译器会在看到State之后知道MyClass中的MyClass::SetState,并意识到这是一个成员函数定义,所以你不必写{ {1}}在这里。