类模板具体化:
定义:编译器使用模板生成特定类型的类对象;
1.隐式实例化
第一步:是隐式实例化;
第二步:创建指针时还没完成实例化,当new时完成隐式实例化创建
即:隐式实例化意思是:要去餐厅吃饭前,先告诉餐厅把我要吃的菜单,餐厅先准备好食材(内存)
![](https://img.haomeiwen.com/i12761363/59e4dc812ebe79fb.jpg)
举例:
![](https://img.haomeiwen.com/i12761363/f490e6d86de34023.jpg)
![](https://img.haomeiwen.com/i12761363/2a831aa95cc37c57.jpg)
2.显式实例化
定义:即使没有创建具体对象,编译器也会在内存开辟空间存放指定的类。
即:显式具体化:你去餐厅吃饭,提前打电话让餐厅做好饭并摆好桌,随时到随时可以吃那种,速度快,但提前消耗资源
![](https://img.haomeiwen.com/i12761363/682e6a802ff886cc.jpg)
举例:
![](https://img.haomeiwen.com/i12761363/3dcf528d32ad9396.jpg)
3.显式具体化(为特定类型定义模板)
对于已经有模板类,对于某些不同类型目前该模板类实现部分不能满足需求,想重新修改模板实现。即:模板类特殊情况特殊处理
![](https://img.haomeiwen.com/i12761363/2f0d37c66ec683ec.jpg)
举例:
![](https://img.haomeiwen.com/i12761363/6b64bb7a5e107329.jpg)
对于int,int 类型的调用该处处理。
注:<>中填的是不需要特殊处理类型如<class t1>此时和部分具体化一样,此处我们两个class 都想是int,故啥也不写
4.部分具体化
![](https://img.haomeiwen.com/i12761363/58381cde71dbd829.jpg)
![](https://img.haomeiwen.com/i12761363/e442e0340a4ea802.jpg)
网友评论