class cippa{};
enum close{ cippa };
int main(){
new cippa(); //bad here
}
使用
::cippa
也无济于事。有没有一种方法可以解决这个问题,而不必将enum
或class
放在单独的namespace
中? 最佳答案
使用new class cippa
消除歧义。如果在同一作用域中声明了类名和枚举器(或函数/变量)名,则该类名将被隐藏。您可以通过class name
访问它。如果类型名称是枚举名称,则相同。您可以通过enum name
进行访问
#include <unistd.h>
// oops, close is now hidden! but we know a trick..
enum close c = cippa;
关于c++ - 类名和枚举值之间的冲突:没有 namespace 就可以解决?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13592504/