1.
面向对象的世界总是以显示接口和运行期多态解决问题。Templates及泛型编程的世界与面象对象的世界有根本上的不同。在此世界中显示接口和运行期多态依然存在,但重要性降低。反倒是隐式接口与编译期多态移到前头了:以不同的template参数具现化会导致调用不同的函数这就是所谓的编译期多态。
2.
template<class T>class Widget;
template<typename T>class Widget;
从C++的角度来看,声明template参数的时候,不论使用关键字class或typename,意义完全相同.
如果template 内用来验明嵌套从属名称,只能用typename.但是不得在base class lists或member initialization list以他修饰。