注册 登录
编程论坛 C++教室

名称空间的不理解

蜗牛进程 发布于 2009-11-12 14:14, 866 次点击
这几天看了全局变量和局部变量~有点理解但是对名称空间的作用域很是费解~
比如;
namespace jill
{
doubl fetch;
struct hill{};
}
char fetch;
int main()
{
using jill::fetch; //using 声明
double fetch; //这里是局部变量

cin>>fetch; //这里是局部还是名称空间的?
cin>>::fetch;//这个是全局变量对吧?
}
书上说是用using 声明在函数里不能有一个和他一样的变量名,但是上面的例子出现了和using声明一样的变量,很是费解。希望高手帮我解惑
你的帮助是我最大学习动力
8 回复
#2
dadongzicool2009-11-12 16:01
应该是不能声明两个一样的名称空间变量名吧
#3
qlc002009-11-12 16:10
cin>>fetch; //这里是全局变量
cin>>::fetch;//这个是名称空间变量
名称空间可以定义很多,但是里面可以定义相同的变量,但是当调用的时候就得加上::作用符表明是哪个名称空间里的变量
#4
一旋无风2009-11-12 17:03
楼上正解!
#5
forclwy2009-11-12 20:25
局部和全局重名,局部覆盖全局
#6
asd67918682009-11-12 21:42
cin>>fetch; //是命名空间变量
cin>>::fetch;//全局变量
#7
蜗牛进程2009-11-13 10:02
那cin>>jiil::fetch是全局还是局部
这么多热心人好感动~
#8
qlc002009-11-13 10:21
那cin>>jiil::fetch就是调用命名空间中的变量应该是属于jii1中的局部变量
#9
蜗牛进程2009-11-13 10:48
谢谢弄明白了~
1