了解隐式接口和编译期多态

加诸于template参数身上的隐式接口,就像加诸于class对象身上的显示接口一样真实,而且两者都在编译器完成检查。就像你无法以一种“与class提供之显式接口矛盾”的方式来使用对象(代码将通不过编译),你也无法在template中使用“不支持template所要求之隐式接口”的对象(代码一样通不过编译)。

请记住

classes和templates都支持接口(interfaces)和多态(polymorphism)。
对classes而言接口时显式的(explicit),以函数签名为中心。多态则是通过virtual函数发生于运行期。
对template参数而言,接口是隐式的(implicit),奠基于有效表达式。多态则是通过template具象化和函数重载解析(function overloading resolution)发生于编译期。

41. Understand implicit interfaces and compile-time polymorphism相关推荐

  1. Effective C++ 改善55个方法

    美·Scott Meyers 候捷 电子工业 2011 刚才看到个会议时间有点晚,3.25论文都提交了 谷歌去广告的插件, 最后投了这个会议,刚刚好正合适.我说金钱与时间 ACCUSTOMING YO ...

  2. 《Effective C++》》阅读笔记

    第一章    Accustoming Yourself to C++ 1           View C++ as a federation of language (1).             ...

  3. Effective C++ 学习笔记 第七章:模板与泛型编程

    第一章见 Effective C++ 学习笔记 第一章:让自己习惯 C++ 第二章见 Effective C++ 学习笔记 第二章:构造.析构.赋值运算 第三章见 Effective C++ 学习笔记 ...

  4. Effective C++ 中文版(第三版)读书笔记 更新ing~

    Effective C++ 中文版(第三版)持续更新ing 让自己习惯C++ 条款1 视c++为一个联邦 条款2 尽量以const,enum,inline替换#define 条款3 尽可能使用cons ...

  5. Effective C++改善程序与设计的55个具体做法笔记

    Scott Meyers大师Effective三部曲:Effective C++.More Effective C++.Effective STL,这三本书出版已很多年,后来又出版了Effective ...

  6. Practical Go: Real world advice for writing maintainable Go programs

    转载地址:Practical Go: Real world advice for writing maintainable Go programs Table of Contents Introduc ...

  7. Effective C++:改善程序与设计的55个具体做法

    Effective C++:改善程序与设计的55个具体做法 二.构造/析构/赋值运算 05 Know what functions C++ silently writes and calls. 06 ...

  8. Java 8中的::(双冒号)运算符

    本文翻译自::: (double colon) operator in Java 8 I was exploring the Java 8 source and found this particul ...

  9. Code Project精彩系列(转)

    Applications Crafting a C# forms Editor From scratch http://www.codeproject.com/csharp/SharpFormEdit ...

  10. codeproject资源集合贴

    Applications Crafting a C# forms Editor From scratch http://www.codeproject.com/csharp/SharpFormEdit ...

最新文章

  1. 知乎多场景内容匹配方案荣获CSDN AI优秀案例奖
  2. c++一日一练:利用流来实现读和写的同步(原创)
  3. VSCODE打开一个文件,另一个文件就关闭的问题的解决方法
  4. tomcat修改进程名称
  5. PHP 各种实用资源
  6. java练习_Java基础笔试练习(一)
  7. Linux 共享内存详解一
  8. java多张图片合成一张_1分钟学会“全景照片”拍摄技巧,从单反拍摄到PS合成,收藏备用...
  9. 好的营销,往往叫广深高速
  10. 解决方案-Visual Studio生成库(DLLLIB)以及如何调用
  11. 算法: 最大正方形面积221. Maximal Square
  12. STEP7硬件更新时报错的解决办法
  13. 单目标跟踪MOSSE详细算法步骤+理论说明
  14. 在MySQL中生成随机经度和纬度
  15. Hbuilder+模拟器,调试App网络连接失败
  16. BZOJ3689: 异或之
  17. 搬家公司会帮忙打包东西吗?一条龙服务
  18. vmware VM虚拟机去虚拟化教程 硬件虚拟机 过鲁大师检测
  19. 高斯模糊处理头像作为背景图的两种高效便捷方法
  20. Aspose.Words利用Word模板导出Word文档

热门文章

  1. 区块链学堂——公有链、私有链、联盟链、侧链、互联链
  2. linux每日命令(20):find命令概览
  3. netcat,nmap常用例子
  4. Linux如何产看系统信息
  5. FragmentStatePagerAdapter写法
  6. jquery实现上拉加载更多
  7. jQuery实现清空table表格除首行外的所有数据
  8. 十个必备的学习iOS开发的网站
  9. 如果你用GitHub,可以这样提高效率
  10. linux虚拟机上lvs-nat的实现