读书人

关于同名解决办法

发布时间: 2012-02-21 16:26:23 作者: rapoo

关于同名
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;
也会报错

读书人网 >C++

热点推荐