【44】将与参数无关的代码抽离templates
2024-10-12 11:24:33
1、template是产生代码的代码,这就意味着源码看起来很少,生成的目标码大量膨胀。
2、考虑,如果两个方法有重复代码,我们会新建一个方法,把重复的代码放进去,原先两个方法调用第三个方法。如果两个类有重复代码,我们把重复代码移到一个新的类中,通过继承或者复合,避免重复。
3、但是在template中,这种重复是隐晦的,只有一份template代码,可能会生成一系列重复的代码。考虑矩阵模板类,有两个模版形参:矩阵元素的类型T和矩阵的大小S。
4、SquareMatrix<double,5> 和SquareMatrix<double,10> 会实例化两个模板类,这两个模板类有大量重复代码,比如:invert方法。
5、如何解决呢?
建立一个模版父类,把重复的代码放在模版父类中,也就是不再带有矩阵大小S,模版子类增加一个矩阵大小S,同时向父类传递一个指针,指向矩阵的数据,调用模版父类的代码,invert(int size, matrix* pMatrix).
最新文章
- JavaScript 框架设计(二)
- MediaCodec Name &; Type
- [转]backbone.js template()函数
- Spring Autowired错误???
- css的一种预处理器 sass
- GoDaddy自动续费信用卡被扣款后的退款方法
- Android 4.0 事件输入(Event Input)系统
- postgreSQL初步使用总结
- selenium python (三)鼠标事件
- 通过spring来配置某个命令号和执行方法之间的映射
- less学习-浏览器端编译(一)
- 谈谈MySQL数据表的类型(转)
- 微信小程序 - 自定义创建
- Python玩转硬件:TPYBoard-Micropython开发板大盘点
- 用LSTM分类 MNIST
- macof python攻击脚本
- 和初学者交流学习java语言一些体会。
- jpa的查询语法
- ASCII对照表
- volatile是否就是原子性/线程同步的