第3章 Data语意学-《深度探索C++对象模型》读书笔记

来源:互联网 发布:女超人知乎 编辑:程序博客网 时间:2024/05/22 00:11

本章主要讲述了以下内容:Data Member的邦定,Data Member的布局,Data Member的存取,继承与Data Member,对象成员的效率,指向Data Member的指针。

Data Member的邦定主要讲述了以下内容:

该部分讲述了一个例子,通过例子和说明我们可以得出一个结论。那就是:在一个类一面要把类型定义和变量定义方在最开始的位置,特别是在模板代码中。

Data Member的布局主要讲述了以下内容:

在类或者结构中一般情况是按照成员变量的声明顺序按照从低地址到高地址的顺序方式排列。上述规则只是一个普遍的实现方式而不是一种强制规定,唯一的规定是在一个访问段中的后出现的一定比先出现的变量位于更高的地址。在不同方位段中的变量排列也无任何强制的要求。

Data Member的存取主要讲述了以下内容:

通过阅读我们可以得出如下结论。如果访问的一个数据成员是静态成员,那么无论通过何种方式访问,存取的效率都是相当高且是固定的。如果访问的数据成员不是某个虚基类的成员那么访问方式也是固定和高效的。如果访问的成员变量是某个序基类的成员,那么访问是有些低效的,因为访问是间接。

继承与Data Member主要讲述了以下内容:

该小节是本章的主要内容,但是该节将的内容比较不太容易理解且比较零碎,具体内容可以阅读本书。我们可以得出的结论就是:随之类的复杂性加大(丛简单的类到从多继承虚拟基类),数据成员的布局也随之复杂,且子类和基类的转换也更加复杂。

对象成员的效率主要讲述了以下内容:

该小节主要给出了几种不同访问数据成员的方式及其效率。我们可以看出在优化开启的情况下效率几乎没有差别。

指向Data Member的指针主要讲述了以下内容:

什么是Data Member的指针,和该指针多加1的情况和原因。但是在VC6.0上试验没有发现多加1的情况,原因可能和书中候捷所说的相同。

原创粉丝点击