- 博客(5)
- 资源 (11)
- 收藏
- 关注
转载 STL的写时拷贝(Copy-On-Write)
<br />原作地址:<br />http://hi.baidu.com/jakisou/blog/item/255e9cd66f16a72a06088b20.html<br /> <br />1、概念<br /><br /> <br />Scott Meyers在《More Effective C++》 中举了个例子,不知你是否还记得?在你还在上学的时候,你的父母要你不要看电视,而去复习功课,于是你把自己关在房间里,做出一副正在复习功课的样子,其 实你在干着别的诸如给班上的某位女生写情书之类的事,而一旦你
2010-07-22 14:53:00 2834 3
转载 (转)c++对象内存分析5
<br /><br /> 前言 前面4节我们已经完成了对4种C++对象布局的分析,本文试图覆盖更多的,常见的C++面向对象的概念。所以,最后2节将继续阐述2个主题:接口和抽象类以及构造函数、虚构函数和虚析构函数。<br /> 接口 这里我准备只主要阐述接口,而不谈一般的抽象类。因为在C++中,是没有“接口”这种类型的,所有的接口事实上是定义为纯抽象类。所谓纯抽象类,就是没有成员变量,没有实现了的函数,只有纯虚函数的抽象类。我相信,理解了接口这种特殊的抽象类,再去理解一般的抽象类是很容易的。<br
2010-07-08 16:22:00 1748
转载 (转)c++对象内存分析4
<br /> 前言 本章节是4个课题的最后一个,我们将讨论多重继承情况下,对象内存的布局。阅读本文,请思考下面的问题:当子类从多个基类继承,虚函数指针和成员变量将如何布局?编译器如何进行子类和基类之间类型转换?如果多个基类具有同样的虚函数,子类选择哪个实现来调用?如果子类重写该虚函数,那么它覆盖的是哪个基类的实现呢?<br /> 多重继承 我们将分析这样的例子:CFinal类继承自CBasic类和CBasic1类;CBasic类和CBasic1类都定义有虚函数add和minus;CBasic类和
2010-07-08 16:21:00 1604
转载 (转)c++对象内存分析2
<br />前言 本章节讨论单继承情况下类对象的内存特性。阅读时请思考这几个问题:从子类到基类的类型转换,编译器做了什么?多态是怎么实现的?类的成员函数(包括虚函数)和普通函数有什么区别吗?<br />Subject2:从带虚函数的基类继承的子类 类CFinal是我们要分析的目标,它从CBasic中继承而来,重写(override)了虚函数add;增加了一个新的虚函数;增加了一个成员变量iFinal,类图如下:<br /><br />代码:<br />class CBasic <br />{ <
2010-07-08 16:20:00 2425
转载 (转)c++对象内存分析3
<br /> 前言 在第二节我们讲到从带虚函数的基类继承的子类,有一个虚函数指针在对象的最前端。但是,如果基类没有虚函数而子类有呢?阅读本节请思考下面的问题:没有虚函数的基类,会有虚函数指针和虚函数表吗?从该类继承的子类,内存中的元素如何布局。<br /> Subject3:从不带虚函数的基类继承的子类 我们把上一节的CBasic类的2个虚函数删除,CFinal从CBasic类继承并增加新的虚函数AVG。类图如下:<br /><br />class CBasic <br />{ <br />
2010-07-08 16:20:00 1723 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人