第5页
- 页码:第5页 2011-08-14 22:27:24
刚看第一章,有关引用计数智能指针实现。 引用计数的实现有插入式和非插入式,插入式没什么好说的,我也经常琢磨非插入式引用计数的实现方式——先不去看shared_ptr的实现。 在我看来,一个很常规的方式是维护一个指针列表的全局列表,对每个指针记录其计数值,这有个好处,当把指针对象附加到指针上的时候,总不会搞错计数值。 看这一章的内容,基本上就是这个模式。 不过,其中还是没有解决我的疑问: 1. 要不要为不同的类型定义不同的列表?此例是一个类型一个列表,但没有说明原因。如果应该,那类族如何考虑? 2. 对于实现不同接口的对象,当接口类型作转换时,指针值也会有变化(偏移),此时,同一个对象就会出现不同的指针值,这就会出现问题。如何解决?为每个列表条目维持一个指针值和对象size值,然后把落在此区间内的指针值认为是同一个对象?那在构造智能指针对象的时候,就必须知道原始对象了——以获取其大小,这基本上不可能。
说明 · · · · · ·
表示其中内容是对原文的摘抄