当前位置: 首页 > news >正文

C++命名空间使用详细介绍

1.前言在c中为了避免代码名称上所产生冲突引入了命名空间这个东西。命名空间相当于划分出一定的空间为特定的类型函数和变量等的名称也就是标识符提供了一个范围。命名空间之内的标识符访问彼此没有限制命名空间之外的标识符可通过使用每个标识符的完全限定名来访问成员也可通过单个标识符的using声明或命名空间中所有标识符的using指令来访问成员。命名空间可以定义在几个不同的部分中因此命名空间是由几个单独定义的部分组成的。一个命名空间的各个组成部分可以分散在多个文件中。2.定义命名空间的定义使用关键字namespace后跟命名空间的名称。namespace namespace_name{// 代码声明}调用带有命名空间的函数或者变量时需要在前面加上命名空间的名称使用完全限定名。namespace_name::code; // code 可以是变量或函数样例123456789101112131415161718192021222324#includeiostreamusingnamespacestd;namespaceA{voidfunc(){cout A endl;}}// 第二个命名空间namespaceB {voidfunc(){cout B endl;}}intmain(){// 调用第一个命名空间中的函数A::func();// 调用第二个命名空间中的函数B::func();return0;}结果3.using 指令当使用using 指令时便可不用加完全限定名直接访问。这个指令会让编译器直接使用namespace里的所有名称。样例1234567891011121314151617181920212223#includeiostreamusingnamespacestd;namespaceA{voidfunc(){cout A endl;}}// 第二个命名空间namespaceB {voidfunc(){cout B endl;}}usingnamespaceB;intmain(){// 只会调用第二个命名空间中的函数func();return0;}结果4.using 声明使用 using 声明以将一个标识符引入范围1234567891011121314151617181920#includeiostreamusingnamespacestd;namespaceA{classa{public:voidfunc(){cout A endl;}};}usingnamespaceA;A::a aa;intmain(){aa.func();return0;}结果为5.嵌套的命名空间一个命名空间中可以定义另一个命名空间一般形式为123456namespacenamespace_name1 {// 代码声明namespacenamespace_name2 {// 代码声明}}像上列代码如果要访问namespace_name2中的成员我们得使用::运算符来访问// 访问 namespace_name2 中的成员using namespace namespace_name1::namespace_name2;// 访问 namespace_name1 中的成员using namespace namespace_name1;样例123456789101112131415161718192021222324#includeiostreamusingnamespacestd;namespaceA{voidfunc(){cout A endl;}// 第二个命名空间namespaceB{voidfunc(){cout B endl;}}}usingnamespaceA::B;intmain(){// 只会调用第二个命名空间中的函数func();return0;}结果为到此这篇关于C命名空间使用详细介绍的文章就介绍到这了
http://www.rkmt.cn/news/1299059.html

相关文章:

  • nodejs项目如何集成taotoken多模型api服务指南
  • C++超详细分析顺序表
  • PoE Overlay终极指南:3个核心技巧解决流放之路玩家最头疼的问题
  • Dust开源平台:构建可观测、可复用的LLM应用工作流
  • 基于Adafruit Flora与NeoPixel的智能滑板灯光系统DIY全攻略
  • 别再手动编号了!用Word/WPS的交叉引用搞定论文参考文献,效率翻倍
  • Ryujinx存档管理终极指南:如何安全备份你的Switch游戏进度
  • 基于自然语言与LLM的桌面智能体:Rodel.Agent架构与实战
  • 人脸识别门禁集成二维码扫码:硬件选型、驱动开发与业务逻辑实践
  • 铁银印相风格商业授权避雷指南:从版权归属、输出介质到NFT铸币的7项法律与技术红线
  • 2026年5月国内人力资源外包公司推荐:五家专业评测帮你解决招聘难痛点 - 品牌推荐
  • 多智能体协作强化学习:基于自然语言通信的SALT-NLP项目解析
  • 书成紫微动,律定凤凰驯:从谶语到现实,海棠山铁哥用两部作品兑现了千年预言
  • uni-app 开发实践:精选uni-admin 基础框架技术解析与集成指南
  • 开发者技能管理工具 ansari-skill:从数据化到可视化实战指南
  • 如何轻松收藏全网音乐?MusicDownload音乐下载神器终极指南
  • 2026届毕业生推荐的十大降AI率平台推荐
  • D2DX:让经典暗黑2在现代PC上完美运行的终极方案
  • Mac Mouse Fix终极指南:让你的普通鼠标超越苹果触控板
  • 充电桩人机交互方案:大彩串口屏的选型、设计与稳定性实战
  • 2026年至今,山东市场铝合金门窗半成品批发优质制造商深度解析 - 2026年企业推荐榜
  • 基于RP2350与CircuitPython的音乐可视化器DIY:从FFT到复古美学
  • 实战指南:利用Gitee API构建自动化图床,并绕过防盗链限制
  • 含AWGN信道的BPSK数据传输系统建模及BER‑SNR性能基准测试(Matlab代码实现)
  • Kaggle CLI完整指南:数据科学工作流自动化利器
  • 深度解析:如何用TradingView本地SDK构建缠论量化可视化系统
  • DockDoor深度解析:macOS窗口预览与多任务管理的效率革命
  • DIY导电织物手机屏蔽袋:基于法拉第笼原理的射频信号隔离实践
  • 基于CircuitPython与ItsyBitsy M4打造可编程宏键盘:从硬件到代码全解析
  • 锂电池安全使用指南:从原理到实践,避免常见风险