第1章 关于对象-《深度探索C++对象模型》读书笔记
来源:互联网 发布:女超人知乎 编辑:程序博客网 时间:2024/05/22 00:31
本章主要讲述的内容是:加上封装后的布局成本,C++对象模式,关键词所带来的困扰,对象的差异。
加上封装后的布局成本,以一个简单的例子说明了C++基本上不会带来额外的负担,同时也说明了C++的主要负担是为了支持虚函数和虚基类机制而造成的。
C++对象模式,主要介绍了三种模型,当然了最后一种才是C++所采用的模型。但是在本小节中P10关于图1.3的说明中[主要缺点…就是了。],本人不太理解,如果哪位大虾知道请不吝赐教。
根据自己的理解和书中所述分析可得VC6.0所实现的C++对象模式如下所述:
每个对象的第前4个字节用来存储vptr(如果有的话),然后是父类的对象,然后才是该类本身的内容。静态成员变量和函数都不存储在对象中。上面所述的内容不考虑字节对齐。
关键词所带来的困扰部分本人感觉读的不太明白,但是根据书中所说和自己的经验总结如下:
1.在C++中struct一般用来声明一个集合。该定义不应该含有过多的普通函数,更不应该含有虚函数,也不应该做为父类。总而言之在C++中使用struct应该保持和在C中使用struct一样,当然要避免书中所述的那些问题。
2.struct不能用作模板中指定类型的关键字,不过class可以,推荐用typename。即如果写下
template<typename T>
class Test
{
private:
T m_tValue;
};
class Test
{
private:
T m_tValue;
};
时不能够使用struct替换typename,但是class可以替换typename,不过推荐使用typename。
3.如果想要定义一些接口,可以使用struct,因为struct里声明的东西默认是public的。
对象的差异部分主要说明了在C++中只有通过指针和引用才能实现多态。
- 第1章 关于对象-《深度探索C++对象模型》读书笔记
- 【深度探索C++对象模型读书笔记】【第1章】关于对象
- 《深度探索C++对象模型》- 第1章 关于对象
- 读书笔记 《深度探索c++对象模型》 (1)
- 《深度探索C++对象模型》读书笔记1
- 《深度探索C++对象模型》读书笔记之关于对象
- 《深度探索C++对象模型》读书笔记第一章:关于对象
- 【深度探索C++对象模型读书笔记】【第7章】站在对象模型的尖端
- 深度探索C++对象模型 第1章
- 《深度探索C++对象模型》读书笔记1:引言,《深度探索C++对象模型》值得一读
- 深度探索C++对象模型--关于对象
- 第2章 构造函数语意学-《深度探索C++对象模型》读书笔记
- 第3章 Data语意学-《深度探索C++对象模型》读书笔记
- 【深度探索C++对象模型读书笔记】【第3章】Data语意学
- 【深度探索C++对象模型读书笔记】【第4章】Function语意学
- 【深度探索C++对象模型读书笔记】【第2章】构造函数语意学
- 【深度探索C++对象模型读书笔记】【第5章】构造、析构、拷贝语意学
- 【深度探索C++对象模型读书笔记】【第6章】执行期语意学
- 项目与discuz整合
- MTK: ShowCategory200Screen() //电话簿快速查找
- C++对象模型读书笔记(二)
- MTK: LSK,RSK的标签与响应
- winhex 使用教程
- 第1章 关于对象-《深度探索C++对象模型》读书笔记
- 反射的用途
- 第2章 构造函数语意学-《深度探索C++对象模型》读书笔记
- MTK-data security and call log
- 第3章 Data语意学-《深度探索C++对象模型》读书笔记
- MTK-call history operate(2)
- Jsp中的include指令
- MTK-call history operate(1)
- MTK-call history initializ