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

namespace

C++ namespace(命名空间)知识要点总结如下:

  1. 作用与意义
    命名空间用于防止名字冲突,将变量、函数、类等组织在不同作用域下。是全局变量
    典型用途:大型项目、库开发、第三方代码集成时避免全局名字污染。
  2. 基本语法

namespace myspace { int x; void func(); class MyClass {};}
使用成员:myspace::x, myspace::func(), myspace::MyClass
3. 使用方式
限定名访问:myspace::x
using声明:using myspace::x; 只引入某个成员
using指令:using namespace myspace; 引入整个命名空间(不推荐在头文件中使用)
4. 嵌套与匿名命名空间
嵌套命名空间:namespace A { namespace B { … } } 或 namespace A::B { … }
匿名命名空间:namespace { … },成员只在当前文件可见(等价于C的static)
5. 命名空间的分割与合并
同一个命名空间可以在多个地方、多个文件分段定义,最终合并为一个空间。
6. 命名空间与作用域
命名空间成员的作用域为整个命名空间,且可嵌套。
命名空间内可以定义变量、函数、类、结构体、枚举、模板等。
7. 命名空间别名
namespace alias = myspace;,简化访问。
8. 标准命名空间
C++标准库内容都在std命名空间下,如std::cout, std::vector。
9. 注意事项
不要在头文件中使用using namespace,避免全局污染。
命名空间不能嵌套定义函数(只能嵌套命名空间、类等)。
命名空间不能被实例化。
10. 典型应用场景
组织大型项目代码结构。
避免第三方库、自己代码、标准库之间的名字冲突。
实现库的内部实现细节隐藏(匿名命名空间)。

#include <stdio.h> namespace N1 { int a = 10; // 假设a经常需要使用 int b = 20; int c = 30; } void func(int n) { printf("HI, %d\n", n); } // using namespace N1; using N1::a; // 单独展开一个,其他的不展开 int main(void) { printf("%d\n", a); // 这样我们就可以直接使用了,就不需要 "::" 了 int res = a; func(a); printf("hello, %d\n", a); return 0; }
http://www.jsqmd.com/news/536316/

相关文章:

  • 西门子840D sl数控系统电源风扇单元(6SL3982-5CX10-0AA1)功能详解
  • 跨网段通讯神器|SG-NAT-210 工业 NAT 网关,不改设备一键通联
  • 《Linux 是怎样工作的》第 2 章:用户模式实现的功能
  • Mozilla开发者推出AI智能体知识共享平台cq解决编程效率问题
  • FONA SIM808嵌入式AT驱动库深度解析与工业实践
  • Vue + Java + Python 打造企业级 AI 知识库与任务分发系统(RAG架构全解析)
  • CubeCell蜂鸣器高精度PWM音调生成库CCTone
  • python之with和try
  • IT人员外包公司怎么选?5大服务商深度横评+隐性成本解析
  • 降AI率工具的语义重构技术解读:为什么能有效降论文AIGC率?
  • 《Linux 是怎样工作的》第 3 章 进程管理
  • 特权账号管理与运维安全审计核心技术
  • OpenClaw任务调度:GLM-4.7-Flash定时执行方案
  • 解决租房信息滞后的智能方案:Apartment Finder如何实时推送理想房源
  • 三线OS突破20个月!科伦博泰TROP2 ADC在肺癌红海杀出重围
  • Linux命令源码查看方法全解析
  • OpenClaw飞书机器人配置指南:Qwen3.5-9B实现对话式任务执行
  • TanStack功能介绍和使用场景,对应 vue,react 完整使用示例
  • 深圳龙岗企业周花哪个好
  • ChatTTS长文本处理实战:AI辅助开发中的性能优化与避坑指南
  • 基于vue的便利店管理销售系统[vue]-计算机毕业设计源码+LW文档
  • 2026年比较好的黑芝麻油/精选黑芝麻公司推荐 - 品牌宣传支持者
  • 2026高校AIGC政策收紧,毕业生如何选对工具高效降论文ai率?
  • 新手福音:用快马AI生成你的第一个树莓派LED闪烁程序
  • 一点点了解数据通信,数据通信原理介绍(下)
  • 开发者的OpenClaw:用GLM-4.7-Flash构建CLI增强工具
  • 江苏高杆灯厂家全场景服务能力深度解析 - 优质品牌商家
  • 基于Vue的毕业设计系统实战:从需求拆解到生产部署
  • OpenClaw监控告警:ollama-QwQ-32B任务失败自动通知方案
  • 失业转行网安:我花 3 万报「黑客特训营」,结果学的是十年前的漏洞利用,现在靠扫端口月入 6K