1、宏是源码级滴、模板是编译级滴,而且还是语法分析和语义分析阶段滴、多态是运行时滴。
2、如果说宏与模板有共通之处的话,那么就是他们都能取得源码的替换效果。
只不过宏是在编译前替换,而模板是在编译时替换,并且进行智能的检查和优化
3、如果说模板和多态有相似之处的话,那么模板就是源码级的多态。
4、所以模板类是不能做基类的,只能是模板类型实例化之后编译器才有可能语义分析。
不知对不对,或者是“地球人都知道”的事,请大家发言。
以上内容转贴的,可惜不知道作者是谁..
如果一个模板function,做了一些特定的操作 例如 T++ .
在调用这个模板function的时候,只要类型支持++操作 (int类型也可以 我们自给定义的一个类型也可以)
模板在编译的时候就能确定调用哪个函数.
更多的用法是在一种类似于com组件的状态下,多个类型都支持同一个接口,模板函数如果使用了特定的接口就能在支持这个接口的类型中完成多态.