最近在使用命名空间,想把命名空间总结下,现在只是简单的记录下使用的心得,后期会进行进一步的整理

1.就是我们是把我们的.cpp文件和.h文件都使用相同的命名空间,如果不这样做 ,会可能出现下列问题。

1.1 只在头文件中使用,那么要包含头文件,使用头文件里声明的类或者方法时,要using namespace ...

而在.cpp中没有使用  ,在连接的时候,会报链接错误。

1.2只在cpp中使用,那么包含头文件后,编译期不会报错,但是在链接期因为找不到实现也会报错。

所以是在.h和.cpp中同时使用。

2.命名空间的位置

无论是在.h还是在.cpp中,命名空间的位置一定是在,#include之后,进行使用,因为这样的话,才能保证原有的.h中的命名空间是完整的,如果你在#include之上,写了自己的空间,你相当于把头文件里外又增加了命名空间。

3.在一个工程下的多个文件里,一般我们使用同一个命名空间,同时如果一个工程下的命名空间相同,那么相互之间就是在一个大的命名空间下,就不用在using  namespace ...了,但是这样也就不能避免你在不同文件之间的冲突了,没有起到命名空间该有的作用了,所以真正使用的时候,最好还是粒度小一点,最好是以文件为单位。

4. 匿名命名空间,为了不让其他文件对你的定义进行引用,通常我们会使用你匿名命名空间,直接使用namespace ,而不加名字,所以只有本文件可以进行使用。

5.命名空间虽然能解决名称冲突,但是不是百分百,如果你的命名空间冲突了,也会出问题

6.当 a文件里有命名空间   test::field1::a,而b文件在命名空间

test::field2::a,此时你引用命名空间a的内容时候,可以直接使用field1::a.

C++命名空间 namesapce相关推荐

  1. 简单易懂的PHP的命名空间以及配合use的使用

    PHP 命名空间(namespace)是在PHP 5.3版本中加入的. PHP 命名空间是用来解决以下两类问题的: 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突. 为 ...

  2. 简述python程序结构_python架构的概念讲解

    Python就是这样一门受到全世界各地开源社区支持的语言,Python可以用来开发各种小工具软件.web应用.科学计算.数据分析等等. 本篇文章是关于Python构架的讲解,希望对于正在学习Pytho ...

  3. python程序框架_Python 程序构架浅析

    一.概念 通常的Python程序的构架是指:将一个程序分割为源代码文件的集合以及将这些部分连接在一起的方法. Python的程序构架可表示为: 一个Python程序就是一个模块的系统.它有一个顶层文件 ...

  4. Kubernetes — 基于层级命名空间的多租户隔离

    目录 文章目录 目录 基于命名空间的多用户模型 基于层级命名空间的多租户隔离 示例 基于命名空间的多用户模型 在单个 Kubernetes Cluster 上安全托管多用户一直是个难题.其中最大的麻烦 ...

  5. php中命名空间和use

    php中命名空间和use 总结 php中的namespace就有点像java中package包的概念 php中的use的概念就是用别人的命名空间中的类 php中的include enquire是引入文 ...

  6. C++起始(关键字,命名空间,缺省参数,函数重载(c语言为什么不支持函数重载))

    1. C++关键字(C++98) 2. 命名空间 在C/C++中,变量.函数和后面要学到的类都是大量存在的,这些变量.函数和类的名称将都存在于全局作用 域中,可能会导致很多冲突.使用命名空间的目的是对 ...

  7. Use Namesapce 使用方法简介

    Use Namesapce 使用方法简介 命名空间(namespace)在C++中的作用非同一般.本文目的不在于阐述命名空间的语法,而在于演示命名空间的使用方法,或者说是使用命名空间的小窍门. 命名空 ...

  8. C++入门之命名空间、缺省函数、重载函数及引用

    目录 一.命名空间 1.概念 (1)流插入运算符和流提取运算符 2.命名空间出现的意义 (1)c语言的命名缺陷 (2)如何解决命名冲突 3.命名空间的使用 (1)不展开使用 (2)完全展开使用 (3) ...

  9. Linux的命名空间详解--Linux进程的管理与调度(二)

    原文链接:https://blog.csdn.net/gatieme/article/details/51383322 日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Lin ...

最新文章

  1. 倒计时 8 天 | 完整议程大揭秘!来 20 个 AI 论坛,与百名大咖携手玩转人工智能...
  2. python 对 yaml 文件操作
  3. 学 Win32 汇编[12]: PTR、OFFSET、ADDR、THIS
  4. Android 解析 Unable to add window is your activity running?
  5. 使用 ViS2005 进行单元测试
  6. 软件工程专业(互联网应用开发与优化方向)软件工程实践二环节教学大纲
  7. Javascript 检测 页面是否在iframe中
  8. linux基础服务,Linux基础
  9. ICCV 2019 | 爱奇艺提出半监督损失函数,利用无标签数据优化人脸识别模型
  10. bzoj3129 [Sdoi2013]方程 容斥+扩展lucas
  11. com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required, profile > GL2 reques
  12. IIS 6 元数据库与IIS 6 配置的兼容性 解决方案
  13. 2022年计算机二级考试Access数据库程序设计冲刺题及答案
  14. magisk安装失败_安卓5.0到安卓10全版本Xposed安装激活使用教程
  15. python创建ppt_ppt自动化创建工具——python-pptx
  16. c语言中单词的作用与形式,C语言基础教程:单词的用法与规则
  17. 原电脑的LenovoS41-70的Anaconda配置信息
  18. 30分钟 Python 教程
  19. R统计-微生物群落结构差异分析及结果解读
  20. AjaxPro.NET使用,方便的在客户端直接调用服务端方法

热门文章

  1. 无法访问srv解析_windows能连网络,可是打不开网页,出现无法解析server的DNS
  2. 智合同携手金山办公打造智能合同应用服务
  3. IAST工具Semmle QL初探
  4. 【react】学习笔记
  5. ajaxsetup获取ajax的url_ajaxsetup,组合拦截器处理session过期,跳转登录页面
  6. 分享83个ASP整站程序源码,总有一款适合您
  7. stm32---室内温湿度监控系统
  8. JS构造函数之new详解
  9. 故障管理:故障应急和故障复盘
  10. SQL注入原理-POST注入