条款41~48:模板与泛型编程

  • 模板用的很少,只懂一点基本的,看也看不懂,get不到点,啥时候用到啥时候再看吧,哭。。。

条款41:了解隐式接口和编译期多态

  • 显式接口:平时见的那些函数签名(即参数和返回类型以及const这种修饰符等等);
  • 隐式接口:基于模板表达式,隐式的指出模板参数T必须支持该表达式中所进行的这些操作,这些操作就是隐式接口
  • 编译期多态:
    1.在编译期,类模板是显式指定模板参数,函数模板是编译器根据实参自己推断模板参数。总之,通过模板具现化在编译期根据模板参数去调用那些隐式接口;
    2.函数重载解析,也是在编译期根据调用函数提供的实参列表去确定调用哪个重载版本

条款42:了解typename的双重意义

  • 在模板的模板参数列表处使用typename或class均可;
  • 在模板内,如果某个名字依赖于模板参数,编译器会默认不把它当作一个类型名,如果这确实是个类型名就需要我们加typename告诉编译器;总之,目的就是为了让编译器能知道模板内的每一个名字都代表什么,而在继承的基类列表成员初值列处的名字,编译器很明显能判断出来这里的名字代表什么,因此就无需我们typename

条款43:学习处理模板化基类的名称

条款44:将与参数无关的代码抽离templates

条款45:运用成员函数模板接受所有兼容类型

条款46:需要类型转换时请为模板定义非成员函数

条款47:请使用traits classes表现类型信息

条款48:认识template元编程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值