[读书笔记] 深入探索C++对象模型-第六章-执行期语义学(上)

来源:互联网 发布:淘宝开店靠谱吗 编辑:程序博客网 时间:2024/04/28 01:13

继续整理第六章的内容,关于执行期的一些内容。

这一部分是关于对象的构造和析构的。注:以下部分图片来自于原文

1. 全局对象

C++中全局对象会被放到数据段中,一种可能的全局对象的初始化方法是在程序中最前面(main()函数第一个指令)插入函数__main(),其中生成对所有全局对象的初始化操作,如下图:


2. 局部静态对象

考虑一下函数:

void Point& identity() {    staitc Point sta_Point;    return sta_Point;}
不管该函数被调用多少次,静态局部对象sta_Point只会被初始化一次,理所当然也只会被析构一次,这种通过函数返回局部静态对象的方法通常是用来解决跨模块(文件)的全局变量的初始化顺序问题。

3. 对象数组

对于如下数组定义:

Point manyPoints[10];
如果 Point未定义默认构造函数或者析构函数,那么产生该数组不会比产生内建类型的数组做的更多,只需要配置足够的内存以存储10个连续的Point元素。

如果Point明确定义了默认构造函数,那么构造函数必须轮流施行于每一个元素上。


0 0
原创粉丝点击