一、命名空间
1.引入
在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突, 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,Namespace关键字的出现就是针对这种问题的。
2.定义
(1)命名空间的定义

(2)相同的命名空间可以分割在不同的文件中,编译器最后都会合成在同一个命名空间下

(3)命名空间可以嵌套

(4)没有名称的命名空间(该命名空间的内容相当于全局变量)

说明:
(1)从本质上讲,一个命名空间就定义了一个范围,在命名空间中定义的任何东西都局限于该命名空间中。
(2)没有名称的命名空间可以只创建在声明它的文件才可见的标识符。(只有在声明这个命名空间的文件中,它的成员才是可见的,它的成员可以被直接访问,不需要命名空间名称来修饰。对于其它文件,该命名空间是不可见的)。
(3)把全局名称的作用域限制在声明他的文件中的一种方式就是把它的声明为静态的,尽管C++支持全局静态,但最好的方式还是使用未命名的空间。
3.使用方式
(1)命名空间内直接使用

(2)命名空间名称限制

(3)导入命名空间

(4)使用谁引入谁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
函数
+关注
关注
3文章
4422浏览量
67863 -
C++
+关注
关注
22文章
2131浏览量
77406 -
变量
+关注
关注
0文章
616浏览量
29571
发布评论请先 登录
相关推荐
热点推荐
深入C++内存管理
说到 C++ 的内存管理,我们可能会想到栈空间的本地变量、堆上通过 new 动态分配的变量以及全局命名空间的变量等,这些变量的分配位置都是由系统来控制管理的,而调用者只需要考虑变量的生
发表于 11-12 09:29
•1002次阅读
一文初识C++
后接-一个或多个字符组成的。后缀告诉系统这个文件是一个C++程序。不同编译器使用不同的后缀命名约定,最常见的包括. cc、.cxx、.cpp、.cp及.
发表于 07-17 15:14
•650次阅读
C++笔记008:C++命名空间 namespace的作用和使用解析
定义了自己的命名空间就可以解决这个问题,即使重名,只要分属不同的命名空间就不会引起问题。在 C语言中定义了3个层次的作用域,即文件(编译单元
发表于 08-11 12:30
命名空间的实现
。更多信息请参见手册页unshare(2)。在进程已经使用上述的两种机制之一从父进程命名空间分离后,从该进程的角度来看,改变全局属性不会传播到父进程命名
发表于 05-24 06:21
python常规包与命名空间包
python常规包与命名空间包1. 常规包在 Python 3.3 之前或者说 Python 2 中,一个包想要被导入使用,那么该包内必须要有 __init__.py 文件,这个文件是 Python
发表于 03-11 15:46
C++程序设计教程之C++工具的详细资料说明
本文档的详细介绍的是C++程序设计教程之C++工具的详细资料说明主要内容包括了:1. 异常处理,2. 命名空间,3. 使用早期的函数库
发表于 03-14 16:39
•4次下载
C++程序设计的基础知识初步了解C++的资料免费下载
本文档的主要内容详细介绍的是C++程序设计的基础知识初步了解C++的资料免费下载包括了:1 认识C++,2 C++的现状和发展,3
发表于 06-10 08:00
•25次下载
C++项目常见的命名规范
本系列是开源书C++ Best Practises[1]的中文版,全书从工具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代C++项目的最佳实践。本文是该系列的第二篇。
C++入坑指南
C++最主要的用途是开发基础软件设施,和在有限资源的条件上运行的应用程序。因为它有一种独特的能力,可以直接操作它所运行的硬件或者机器,即使在硬件空间资源受限的情况下,C++程序依旧可以
C++简史:C++是如何开始的
MISRA C++:2023,MISRA® C++ 标准的下一个版本,来了!为了帮助您做好准备,我们介绍了 Perforce 首席技术支持工程师 Frank van den Beuken 博士撰写
一文了解C++的命名空间
评论