函数参数中的 C++ enum 关键字
C++ enum keyword in function parameters
在函数参数中使用 enum
关键字有什么意义?没有它似乎做同样的事情。
enum myEnum{
A, B, C
};
void x(myEnum e){}
void y(enum myEnum e){}
两者有区别吗?
在此函数声明中
void x(myEnum e){}
枚举 myEnum 应已声明且未隐藏。
在此函数声明中
void y(enum myEnum e){}
这里使用了所谓的详细类型名称。例如,如果在范围内声明了一个名为 myEnum 的变量,例如
int myEnum;
然后使用这个函数声明
void y(enum myEnum e){}
允许引用名为 myEnum 的枚举,如果没有关键字 enum 将被变量声明隐藏。
这是一个演示程序。
#include <iostream>
enum myEnum{
A, B, C
};
void x(myEnum e){}
int myEnum;
// compiler error
//void y(myEnum e){}
void y(enum myEnum e){}
int main() {
// your code goes here
return 0;
}
可以看出,如果取消注释,注释的函数声明将无法编译。
在函数参数中使用 enum
关键字有什么意义?没有它似乎做同样的事情。
enum myEnum{
A, B, C
};
void x(myEnum e){}
void y(enum myEnum e){}
两者有区别吗?
在此函数声明中
void x(myEnum e){}
枚举 myEnum 应已声明且未隐藏。
在此函数声明中
void y(enum myEnum e){}
这里使用了所谓的详细类型名称。例如,如果在范围内声明了一个名为 myEnum 的变量,例如
int myEnum;
然后使用这个函数声明
void y(enum myEnum e){}
允许引用名为 myEnum 的枚举,如果没有关键字 enum 将被变量声明隐藏。
这是一个演示程序。
#include <iostream>
enum myEnum{
A, B, C
};
void x(myEnum e){}
int myEnum;
// compiler error
//void y(myEnum e){}
void y(enum myEnum e){}
int main() {
// your code goes here
return 0;
}
可以看出,如果取消注释,注释的函数声明将无法编译。