![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
小李飞小刀
上坡路难走
展开
-
《C++沉思录》 第六章 句柄 第一部分
<br /> 简单回顾一下第五章节,Andrew Koening向我们提出了一个问题,在一个继承体系中,如何设计一个容器可以容纳各个不同的子类对象。显然无法使用基类对象数组,如果是抽象基类,没有办法进行实例化。很自然的我们容易想到可以使用基类指针,但这样对象内存管理便交于用户了,容易造成很多麻烦问题。为了解决此问题,Koening使用了代理类。<br /> 什么是代理类呢,简单来说,就是封装了基类指针并可以提供所有功能接口的类。在代理类的构造过程中,使用对象的指针初始化代理类的基类指针成员原创 2011-01-25 17:16:00 · 633 阅读 · 0 评论 -
《c++沉思录》第七章 句柄:第二部分
<br /> 在第六章中,一直跟着书走,并没有深入思考第六章中实现的句柄,一看第七章还是句柄,心生怀疑难道句柄还没有结束么,之前的设计有什么问题么,唉是真有,第六章中我们要实现句柄操作需要包括三个部分:原数据类,数据的引用计数封装类, 句柄类。问题出在引用计数这部分,我们的封装类使用的是具体类,没有办法做到通用,我们仍然必须回到基类指针上,我们可以让中间的类封装基类指针,这个是可以的,通过修改实现是没有问题的,即UPoint中同样使用Point* p,复杂一些,但仔细考虑一下结构Handle 中原创 2011-01-26 16:28:00 · 584 阅读 · 0 评论