读书笔记7: 模板与泛型编程

每一个Item都很经典,都需要去思考揣摩,我在这里将要点抽象出来,便于日后快速回忆;我只是在做文章的“搬运工”。

        Item 41: 理解隐式接口和编译期多态
1. 显式接口: 它在源代码中显式可见; 显式和隐式接口之间的区别是与 template有关的新内容。
   [隐式接口:模板中的接口,模板类型的不确定导致对象的方法、数据是不确定的;如果没有调用关系,即使没有相应的方法、数据,也可以编译通过]
2. 执行期多态:被调用的特定函数在执行期基于对象的动态类型来确定。
3. 编译期多态:不同的 template 参数实例化函数模板导致不同的函数被调用。
4. 重载函数中哪一个应该被调用的过程,这个发生在编译期;virtual函数调用动态绑定,这个发生在运行期。

        Item 42: 理解 typename 的两个含义
1. typename,它暗示着这个参数不必要是一个class类型(用户自定义类型)。
   [