史上最简练的effective c++(条款41-48)模板与泛型编程

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

隐式接口,即是template的接口,在编译期才生成具体函数,多态也基于表达式的具体函数生成

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

关键字typename 用来标识嵌套从属名称

学习处理模板化基类内的名称

承诺基类所有实现均具有该方法:(包括泛化版和特化版)

  • 使用this
  • using
  • 直接指明调用发生于基类
    最终没实现还是不能通过编译

条款44-将与参数无关的代码抽离template

非类型模板参数和类型模板参数均会造成代码膨胀,前者可以以函数参数或者成员变量替换,后者让相同二进制表述的具体类型共享实现码(特化)

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

模板类型参数符合继承关系,生成的模板类并不能相互转换,只有运用成员函数模版显示实现构造,复制构造函数才行。

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

template实参推导过程中从不把隐式类型转换函数纳入考虑,在模板类内定义friend 函数,在模板实例化时,friend函数也被实例化,由于是函数,于是可以进行隐式转换。

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

现在都用decltype了

条款48-认识template元编程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值