C++面向对象编程之成员模板、模板特化、偏特化和模板模板参数

1.成员模板

 

理解起来就是类是模板类,他里面的成员函数又是个模板函数

 

上图例子:用派生类构造父类

 

2.模板特化

就是在类模板泛化后写特化的类,在template<>里不绑定类型,而在类后面<绑定类型>

 

 

3.模板偏特化

1)绑定个数的偏

就是在泛化时有一小部分元素是固定的某种类型值,例如char,这样可以减少空间,不然泛化的优化就要8字节

 

 在偏特化时为绑定的还是要在template<>里写出来,后在类后面<>写绑定了的和未绑定的,一定从左到右绑定不能跳着绑定

 

2)范围的偏

 就是原本是任意类型可以绑定,如果有任意指针的类型可以绑定就直接执行下面这个

 

4.在写template<>时, <>里class 和typename 可以共通,是历史遗留问题

 上图如果直接用 list 是用不了的,因为 list 自己还有别的参数

 

4.1下面这个不是模板模板参数

 因为在写第二个参数时,list<int>已经绑定死了,没有可以模糊的地带

posted @ 2022-05-14 17:18  acwarming  阅读(171)  评论(0编辑  收藏  举报