模板是C++最有特色的语法,也是最复杂的语法。它将类型看作一种参数来进行编程。
写一个max,求两个东西中较大的一个。
1 int max(int a, int b) { 2 return a>b?a:b; 3 } 4 5 double max(double a, double b) { 6 return a>b?a:b; 7 } 8 9 string max(string a, string b) { 10 return a>b?a:b; 11 }
它们的算法都是类似的,只是参与运算的对象的类型不同。我们可以把类型定义成一个参数:
1 template<class T> 2 T max(T a, T b) { 3 return a>b?a:b; 4 }