C++ Primer 5th笔记(chap 18 大型程序工具)未命名的命名空间unnamed namespace
1. 定义
关键字 namespace 后紧跟花括号括起来的一系列声明语句
1.1 生命周期
未命名的命名空间中定义的变量拥有静态生命周期: 它们在第一次使用前创建, 并且直到程序结束才销毁
未命名的命名空间取代文件中的static 静态声明
1.2 多个文件
每个文件定义自己的未命名的命名空间,如果两个文件都含有未命名的命名空间,则这两个空间互相无关。
在这两个未命名的命名空间里面可以定义相同的名字,并且这些定义表示的是不同实体。
如果一个头文件定义了未命名的命名空间,则该命名空间中定义的名字将在每个包含了该头文件的文件中对应不同实体。
和其他命名空间不同,未命名的命名空间仅在特定的文件内部有效,其作用范围不会横跨多个不同的文件。
1.3 作用域
如果未命名的命名空间定义在文件的最外层作用域中, 则该命名空间中的名字一定要与全局作用域
中的名字有所区别
int i; / / i的全局声明
namespace {int i;
}// 二义性: i的定义既出现在全局作用城中, 又出现在未嵌套的未命名的命名空间中
i = 10;//一个未命名的命名空间也能嵌套在其他命名空间当中。 此时, 未命名的命名空间中的成员
可以通过外层命名空间的名字来访问:
namespace local {namespace {int i;}
}// 正确: 定义在嵌套的未命名的命名空间中的i与全局作用域中的i不同
local::i=42;
C++ Primer 5th笔记(chap 18 大型程序工具)未命名的命名空间unnamed namespace相关推荐
- C++ Primer 5th笔记(chap 18 大型程序工具)内联命名空间 (inline namespace)
1. inline必须出现在命名空间第一次出现的地方 inline namespace FifthEd {//... }//后续再打开命名空间的时候可以写inline也可以不写 namespace F ...
- C++ Primer 5th笔记(chap 18 大型程序工具) 重载与命名空间
1. using 声明或 using 指示能将某些函数添加到候选函数集 2. 对于接受类类型实参的函数来说, 其名字查找将在实参类所属的命名空间中进行.在这些命名空间中所有与被调用函数同名的函数都将被 ...
- C++ Primer 5th笔记(chap 18 大型程序工具) 类、 命名空间与作用域
1. 命名空间内部名字的查找规则 由内向外依次查找每个外层作用域. 外层作用域也可能是一个或多个嵌套的命名空间, 直到最外层的全局命名空间查找过程终止. 只有位于开放的块中且在使用点之前声明的名字才被 ...
- C++ Primer 5th笔记(chap 18 大型程序工具)命名空间
1. 问题:命名空间污染 namespace pollution 多个库将名字放置在全局命名空间 1.1 一般人的解决方法 起长名字 eg. class cplusplus_primer_Query ...
- C++ Primer 5th笔记(chap 18 大型程序工具)使用命名空间成员
1. 3种方法 using 声明 命名空间的别名( namespace alias) using 指示( using directive) 1.1 命名空间的别名 namespace cplusplu ...
- C++ Primer 5th笔记(chap 18 大型程序工具) 多重继承之构造函数、析构函数
1. 继承的构造函数与多重继承 如果从多个基类中继承了相同的构造函数(即形参列表完全相同),则程序将产生错误 struct Basel {Basel () = default;Basel (const ...
- C++ Primer 5th笔记(chap 18 大型程序工具)noexcept
1. 通过提供 noexcept 说明 ( noexcept specification ) 指定某个函数不会抛出异常. 其形式是关键字 noexcept 紧跟在函数的参数列表后面 {// 紧跟在函数 ...
- C++ Primer 5th笔记(chap 18 大型程序工具)异常处理
1. 异常处理 ( exception handling) 允许程序中独立开发的部分能够在运行时就出现的问题进行通信并做出相应的处理. 异常使得我们能够将问题的检测与解决过程分离开来. 程序的一部分负 ...
- C++ Primer 5th笔记(chap 18 大型程序工具)构造函数与虚继承
1. 继承体系中的每个类都可能在某个时刻成为" 最低层的派生类". 只要我们能创建虚基类的派生类对象, 该派生类的构造函数就必须初始化它的虚基类. Bear::Bear (std: ...
最新文章
- pythonturtle画房子_用python的turtle模块实现给女票画个小心心
- (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片
- DOSbox汇编环境配置
- 中国钠离子电池行业竞争需求状况及投资盈利分析报告2021-2027年版
- SpiderMonkey
- 用squid配置代理服务器(基于Ubuntu Server 12.04)
- 龙芯3A5000初样顺利交付流片
- C语言汇编pdf,c语言程序代码[汇编].pdf
- JQuery自动点击事件加载load事件和 AJAX异步请求加载
- 网络工程师的python之路pdf下载_网络工程师的Python之路:网络运维自动化实战
- 数学建模算法与应用习题 1-4 解析 MATLAB 换一下思路做题
- Python 实现定时任务的八种方案
- mysql列名命名_重命名MySQL中的列名?
- Java获得随机数的几种方法
- mysql范围查询如何建索引_MySQL索引(二):建索引的原则
- Stata: 面板 Granger 因果检验
- 华为做raid5步骤_华为2288hV3服务器创建RAID步骤.docx
- python爬虫的学习总结
- 2015071103 - 忘记带火车票
- 记一次java应用内存不断增长问题解决过程
热门文章
- 4.空悬指针和野指针
- Java 向上类型转换与向下类型转换的理解【复习】
- 第十一届蓝桥杯java B组第二场-试题A: 门牌制作
- 第九届蓝桥杯java B组—第三题复数幂(详细介绍)
- mysql server 组件cve_Oracle MySQL Server 'Server'子组件远程安全漏洞(CVE-2012-0574)
- 交叉表 列字段排序_PowerBI创建日期表
- jqgrid 服务器端验证,jqGrid获取服务服务器返回的所有数据
- 环境监控告警系统之TIM即时消息推送部署
- 关于数据中心的选址大全
- Python语言学习之字符串那些事:python和字符串的使用方法之详细攻略