看开源代码看到类的静态成员函数可以使用的类内定义的枚举值,似乎与之前学习的时候看到静态成员函数只能调用类内的静态成员变量。于是做了一个小实验,发现真的可以,不知如何解释。做一个小的记录,有时间调查一下,如有大神指教。
#include<iostream>
using namespace std;
class testClass{
enum{
MODIFY = 1,
CLONE = 2,
DELETE =3,
};
public:
static const char *get_op_name(int op){
switch(op){
case 1:
return "1";
case 2:
return "2";
case 3:
return "3";
}
}
};
int main()
{
const char *get = testClass::get_op_name(1);
cout<< *get <<endl;
return 1;
}
结果是1,说明静态方法get_op_name调用枚举类型没有问题。