ATL中的C++模板

在ATL的类库中,存在大量的C++模板,特化,偏特化,还是一种模板---基类模板(姑且这么叫吧),可能是平时不多见,在ATL中却是漫山遍野,几乎每一个类都采用了这种实现方式.

先看代码:

Code

从运行结果上可以看出.它不仅可以调用基类函数,而且实现了函数重写(override).完成了继承与虚函数可以实现的功能.

还有一个明显的优点,那就是省去虚表结构.小的类也许虚表结构不大,但是大的类或者由于多次继承产生的虚表膨胀就会占去很大的空间.而且虚表采用晚绑定方式,在性能上就会有一定下降.而采用这种方式,在空间与时间都有很多提高。(我想是这样,不过没测试过)

 

posted @ 2009-01-13 00:33  Christmas  阅读(236)  评论(0编辑  收藏  举报