发布时间:2026/9/6 13:22:41
C++命名空间的介绍和使用 命名空间在C/C中变量、函数和类都是大量存在的这些变量、函数和类的名称将都存在于全局作用域中可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的。#includelt;stdio.hgt;#includelt;stdlib.hgt;intrand10;intmain(){printf(%d\n,rand);return0;}// 编译后后报错error C2365rand重定义// 报错重定义是因为在stdlib.h里面已经定义了一个rand这里重复定义了// 这是库冲突也就是自己定义的名字和库里面的名字重复//也有自己互相冲突比如两个人写同一个项目的不同模块最后一合并有命名冲突// C语言没办法解决类似这样的命名冲突问题所以C提出了namespace来解决2.1 命名空间定义定义命名空间需要使用到namespace关键字后面跟命名空间的名字然后接一对{}即可{}中即为命名空间的成员。正常的命名空间定义// xioayu是命名空间的名字一般开发中是用项目名字做命名空间名。// 自己练习用自己名字缩写即可如张三zsnamespacebit{// 命名空间中可以定义变量/函数/类型intrand10;intAdd(intleft,intright){returnleftright;}structNode{structNode*next;intval;};}命名空间可以嵌套// test.cppnamespaceN1{inta;intb;intAdd(intleft,intright){returnleftright;}namespaceN2{intc;intd;intSub(intleft,intright){returnleft-right;}}}同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。注意一个命名空间就定义了一个新的作用域(也就是命名作用域)命名空间中的所有内容都局限于该命名空间中。//命名空间域看起来和局部域很像实际上不是一回事命名空间域不影响生命周期。2.2 命名空间使用命名空间中成员该如何使用呢比如namespacebit{// 命名空间中可以定义变量/函数/类型inta0;intb1;intAdd(intleft,intright){returnleftright;}structNode{structNode*next;intval;};}// 这里没有分号intmain(){// 编译报错error C2065a未声明的标识符printf(%d\n,a);return0;}//我们可以看到当没有使用特殊方法的时候命名空间里的变量是无法被外面使用的命名空间的使用有三种方式加命名空间名称及作用域限定符intmain(){printf(%d\n,N::a);return0;}指定访问最推荐风险最小。当要访问嵌套的命名空间里的变量的时候依次在左边加上命名空间名就行。使用using将命名空间中某个成员引入usingN::b;intmain(){printf(%d\n,N::a);printf(%d\n,b);return0;}使用using namespace 命名空间名称 引入usingnamespce N;intmain(){printf(%d\n,N::a);printf(%d\n,b);Add(10,20);return0;}这就是命名空间全部展开这种方式是告诉编译器这个域可以搜索当全局变量和被展开的命名空间里的变量名字一样的时候编译器会不知道哪个错误但是实际上他们不在一个域里面并不是重定义错误。注意早期标准库将所有功能在全局域中实现声明在.h后缀的头文件中使用时只需包含对应头文件即可后来将其实现在std命名空间下为了和C头文件区分也为了正确使用命名空间规定C头文件不带.h旧编译器(vc 6.0)中还支持iostream.h格式后续编译器已不支持因此在日常练习中推荐使用iostream.hstd的方式。

相关新闻

2026/9/6 13:17:41

大模型微调入门:从概念到实战,5分钟搞懂LoRA和QLoRA

一、为什么需要微调大模型 通用大模型虽然强大,但它是"通才"而不是"专家"。企业私有知识问答、垂直领域对话、特定格式输出这些场景,通用模型往往答不准、格式乱、风格不对。微调就是让模型在特定任务上更专业、更听话。 目前最主流…

2026/9/6 13:17:41

打造个人IP文案指令

【A版】#Role:个人IP故事文案创作助手#Background:你是一位经验丰富的自媒体博主,擅长根据自己的专业领域和特点打造个人品牌故事。你将通过引导用户提供详细的个人信息和职业背景,生成符合格式要求的个人IP故事文案,并进行自我优化。#Skills…

2026/9/6 14:17:45

双闭环可逆PWM直流调速系统设计:从原理到参数整定实战

简介:一份面向电气工程、自动化及电力电子方向学生的课程设计文档,围绕双闭环可逆直流脉宽PWM调速系统,提供从任务书、系统方案确定到设计分析、电路设计、调节器参数整定、总体电路图输出的完整流程。资源包仅含1个doc文件,大小8…

2026/9/6 14:17:45

ArcGIS Engine开发方式详解:独立开发、宿主二次开发与组件式开发

简介:这份PPT课件是牟乃夏ArcEngine教程第2章,属于教育课件,面向GIS专业学生与桌面GIS开发入门者,系统梳理利用ArcEngine构建桌面应用软件的完整开发方式。内容覆盖ArcEngine核心架构与多语言API接口、开发环境安装配置、首个项目…

2026/9/6 14:17:45

数字图像处理学习总结:从碎片笔记到实用PDF的整理路径

简介:这是一份数字图像处理课程学习总结PDF,面向图像处理初学者、备考学生以及需要快速回顾算法原理的开发者。内容以图文公式形式系统梳理了点运算(灰度直方图、直方图均衡化与规定化、灰度变换与分段拉伸)、几何变换&#xff08…

2026/9/6 14:17:45

MATLAB/Simulink牵引供电系统故障仿真与保护定值校验方法

简介:基于MATLAB的牵引供电系统故障仿真PDF文献,面向电气工程、轨道交通供电方向的在校学生与工程技术人员,同时适合需要参考仿真建模方法的MATLAB学习者。文献以牵引网短路故障为典型场景,详细介绍了在Simulink环境下构建DF供电方…

2026/9/6 14:17:45

图书管理系统测试报告撰写指南:用例设计与缺陷记录要点

简介:这份报告是一份以图书管理系统为被测对象的软件测试技术实验报告,面向软件测试学习者、开发人员和项目管理者,完整覆盖测试计划设计、用例编写、场景执行与结果分析等阶段。报告基于J2EE技术栈开发的系统原型,重点展示了黑盒…

2026/9/6 14:12:44

Modelica建模语言入门:从物理方程到多领域仿真实践

简介:这份PPT课件系统介绍Modelica语言,面向从事物理系统建模与仿真的工程师、科研人员及相关专业学生,旨在帮助读者建立对多领域统一建模、基于方程的非因果建模和面向对象建模的整体认知,理解Modelica如何用方程而非传统赋值语句…

2026/9/6 0:06:59

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/6 0:06:59

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/6 0:06:59

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/6 0:06:59

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/6 0:06:59

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/6 0:06:59

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/6 11:40:10

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/5 2:30:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/6 10:19:40

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…