ATL-Style模板 不用虚函数实现 多态

来源:互联网 发布:ipad淘宝如何清除缓存 编辑:程序博客网 时间:2024/05/18 01:57

最近在看ATL和WTL,比较有意思的是,它用类模板来实现多态,子类通过类模板将真实的类型传给父类,这样父类就知道真实的类型了。
简单的例子:

这样做的优点很明显,不用虚函数,节省了虚表所需的空间,不同于虚函数的运行时绑定,类模板是在编译时期确定的,这样提高了程序的运行速度,也使问题提前在编译时期就暴露出来
但是我认为,在硬件飞速发展的今天,这些问题并不明显,相反,这样的做法降低了代码的可读性,要实现父类指针指向多种子类也比较困难
然而并不是说这样不好,从不同角度看事情,得出的结论也不尽相同。而且我也并没有太多这方面的经验,理解也不深,欢迎大家踊跃拍砖。