关于同名
int s = 0;
void func()
{
class s
{
......
};
s a; //前面不需要加class
::s = 3;
}
但为什么下面的代码:
int f(int);
class f
{
......
};
class f g; //前面必须有class
为什么不是像第一段代码一样,调用函数时用::f(int);区别
[解决办法]
原来那个例子里面有名字空间的问题,先s a;查找小范围(函数中)的名字空间,可以解释完成解释
后面那个例子里面都是处于global的范围内,不明确什么是什么是不可以的
同样
int f = 0;
class f
{
};
f g;
也会报错