1、当初为什么设计C++ Template?
C++ Template是为了建立类型安全的容器,如vector,可以建立包含Person的vector,也可以建立包含int的vector。后来发现,C++ Template具备更强大的威力,泛型编程,也就是写出的代码与所处理的对象类型彼此独立。
2、面向对象总是显式接口和运行期多态,这个很好理解。显式接口就是类的头文件中暴露的方法和字段,运行时多态就是运行时根据对象的真实类型决定调用哪个方法。在泛型编程中,暴露的接口是隐式接口,也就是一组有效表达式,期望类的对象具有这些接口,如果没有代码编译通不过。编译时多态是指:在编译时根据模版实参实例化出一个类或者方法。