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

本文共 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

你可能感兴趣的文章
MySQL批量修改数据库的字符集
查看>>
袁帅:为客户提供增值服务,打破互“联网+会议会展”盈利困局
查看>>
Did you install mysqlclient? 运行Django项目报错
查看>>
iptables filter表案例、iptables nat表应用
查看>>
Nginx服务的虚拟主机
查看>>
C++ Sleep() sleep()
查看>>
苏州土豆seo实践课程
查看>>
实战Nodejs计时器的玩法
查看>>
普惠人工智能,ModelArts实验班让你爱上AI开发
查看>>
5年经验Java程序员面试20天,拿下数个offer,总结出的经验感想!
查看>>
规则影响分析:防火墙策略规划的好帮手
查看>>
计算机简介
查看>>
能否看清这智能化大趋势,决定了你未来10年的生存发展
查看>>
PostgreSQL DBA(39) - PG 12 Functions for partition
查看>>
oracle Streams基础之应用进程 (7)
查看>>
MySQL(三):查询详解
查看>>
从java到php
查看>>
Amoeba实现mysql主从读写分离
查看>>
java--xml与字符串两者之间的转换代码(实例)
查看>>
Postgresq9.6主从部署
查看>>