C++ Primer Plus:第九章 - 内存模块和名称空间

0、本章内容:

单独编译。

存储持续性、作用域和链接性。

定位 new 运算符。

名称空间。

1、单独编译:

C++编译器既编译程序,也管理链接器。

头文件:
函数原型
使用#define或const定义的符号常量
结构声明
类声明
模板声明
内联函数

2、存储持续性、作用域和链接性:

自动存储、静态存储、线程存储、自动存储。

2.1 作用域和链接

作用域描述了名称在文件的多大范围内可见。
链接性描述了名称如何在不同单元间共享。

2.2 自动存储持续性

作用域为局部,没有链接性。

自动变量用栈来管理。

2.3 静态持续变量

外部链接性、内部链接性、无链接性。

静态变量初始化分配固定内存,默认为0。

2.4 静态持续性、外部链接性

可以在文件中位于外部变量定义后面的任何函数中使用它。

使用关键词extern重新声明以前定义过的外部变量。

2.5 静态持续性、内部链接性

static限定符使该变量被限制在这个文件内。

2.6 静态存储持续性、无链接性

只在定义的代码块中使用,只在启动时进行一次初始化。

2.7 说明符和限定符

volatile防止硬件优化改变变量值。
mutable使得const类型的类和结构中的变量可以修改。

const修改外部链接性为内部链接性,此时不能用extern初始化。
加extern后使得常量重新变为外部链接性。

2.8 函数和链接性

static将函数设为文件内部函数。

2.9 语言链接性

默认使用C++编译器。

2.10 存储方案和动态分配

使用new运算符初始化
new失败时
new:运算符、函数和替换函数
定位new运算符

3、名称空间:

3.1 传统的C++名称空间

声明区域、潜在作用域、作用域。

3.2 新的名称空间特性

默认情况下,名称空间的链接性为外部。
声明名称空间中的变量后,不能再次声明同名变量。
使用编译指令将名称空间的所有名称导入声明区域。

未命名的名称空间只在声明点到声明区域末尾有效。

3.3 名称空间示例

3.4 名称空间及其前途

不要在头文件中使用using编译指令。

4、总结:

null。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值