博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[C++基础]002_名字空间(namespace)
阅读量:6000 次
发布时间:2019-06-20

本文共 971 字,大约阅读时间需要 3 分钟。

1 #include 
2 using namespace std; 3 4 namespace A{ 5 int a = 1; 6 } 7 8 namespace B{ 9 int b = 2;10 }11 12 namespace C{13 int c = 3;14 }15 16 int main(){17 18 int a = 10;19 int b = 20;20 int c = 30;21 22 using namespace A;23 using namespace B;24 using namespace C;25 26 cout<<"a = "<
<

以上代码,会输出什么呢?答案如下:

1 a = 102 b = 203 c = 304 a::a = 15 b::b = 26 c::c = 37 请按任意键继续. . .

可见,函数内定义的变量声明会覆盖命名空间里的变量声明。所以,这里需要编程者注意,如果你在名字空间里做了一些赋值操作,那么在调用它的地方,一定要注意会不会被覆盖。

注:最好的调用方法是名字空间::变量名。

1 namespace A{ 2     int a = 1; 3 } 4  5 namespace B{ 6     int b = 2; 7 } 8  9 namespace C{10     int c = 3;11     int b = 3;12 }13 14 int main(){15 16     //int a = 10;17     //int b = 20;18     //int c = 30;19 20     using namespace A;21     using namespace B;22     using namespace C;23 24     cout<<"a = "<<

上面的代码是通不过编译的,因为变量b的调用不明确,这就是所谓的“名字冲突”。

转载于:https://www.cnblogs.com/alephsoul-alephsoul/archive/2012/10/08/2715919.html

你可能感兴趣的文章
1.部分(苹果)移动端的cookie不支持中文字符,2.从json字符串变为json对象时,只支持对象数组...
查看>>
vim配置及快捷键
查看>>
2018省赛赛第一次训练题解和ac代码
查看>>
UWP Composition API - 锁定列的FlexGrid
查看>>
[转载] win10进行端口转发
查看>>
利用JavaScript jQuery实现图片无限循环轮播(不借助于轮播插件)-----转载
查看>>
从零开始搭建vue项目 请求拦截器 响应拦截器
查看>>
ajax实现动态下拉框
查看>>
HDU3257 Hello World!【打印图案+位运算】
查看>>
jquery 选择器
查看>>
The secret code
查看>>
Makefile 多目录自动编译
查看>>
学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中
查看>>
统一Matlab下不同子图的色标colorbar
查看>>
Linux 进程间通信(二) 管道
查看>>
Ajax保留浏览器历史的两种解决方案(Hash&Pjax)
查看>>
深入浅出JQuery (二) 选择器
查看>>
CI框架 -- 驱动器
查看>>
FastMQ V0.2.0 stable版发布
查看>>
对象复制
查看>>