模板-继承-具现化
来源:互联网 发布:燕郊文化大厦淘宝 编辑:程序博客网 时间:2024/05/07 03:35
今天在学习effective c++中的第49个条款时,遇到一个模板继承的方法,让我打开眼界,感慨万千啊!
具体的代码如下:
怎么样?看了上面的代码,大家是否有些迷惑?首先,类NewHandlerSurpport采用的模板类的定义,其内部却没用到类型T;其次,它的子类在继承时,用了class Test : public NewHandlerSurpport<Test>的方式,将自身作为模板类型参数。怪哉怪哉!一般情况下,大家会不采用模板类来定义NewHandlerSurpport,而且子类直接继承即可,为什么要这样大动干戈,而又好像多此一举呢?
原来,这么做也是有深意的!因为父类中定义的是静态函数和静态变量,这样按照逻辑,每个继承它的子类都应该独享一份静态数据,也就是独享一份父类,这又怎么实现呢?哈哈,正如上面的模式,让基类是模板类,子类继承是采用子类类型作为模板参数,这样在代码编译时不同的继承类就将父类具现化成各自所属的父类,也就是说各自有一份具现化后的父类的拷贝的代码块,各自具有自己所属的静态成员数据和函数,而不会共用一份,有点绕口了!呵呵!相信聪明的呢已经理解了我的意思!这种奇特的方式叫做“怪异的循环模板模式”,在《effective c++》中叫做“do it for me ”,not do it for others!这个名字更贴切些!
发现《effective c++》的内容真是博大精深啊,这也是我看的时间最长的一本书了!而且每次温习都有收获!
- 模板-继承-具现化
- 模板继承
- 模板继承
- 模板继承
- 模板继承
- 虚拟继承和模板继承
- 区分继承和模板
- 区分继承和模板
- 材质继承 模板材质
- 模板类的继承
- c++的模板继承
- 区分继承和模板
- C++模板和继承
- C++模板和继承
- ThinkPHP示例:模板继承
- 类模板的继承
- 模板与继承
- 模板类继承问题
- 经典算法(1)——8皇后问题求解(回溯法)
- 有理想的程序员必须知道的15件事
- 未来2年的职业规划
- dom4j读取xml文件
- VC2008出现warningC4996的解决方法
- 模板-继承-具现化
- Fedora yum命令详解
- Unix&Linux大学教程:19 过滤器:选取、排序、组合和变换
- 让理科生沉默,让文科生落泪的文史综合题[ZT
- NT驱动开发学习笔记005
- 类加载器
- VC6.0与Visio冲突问题解决方案
- [顶] [转] [推荐]我个人比较受用的一些习惯
- 最详细windows xp下安装mac的教程(转自远景论坛69nc)