模板

模板是创建泛型类或函数的蓝图或公式。库容器,比如迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。

函数模板: template <class type> retutype funcname(parameter){} 

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 //这里用到const&,表示参不能被修改,如果在函数前返回值类型不是常用的类型可以增加效率
 5 template <class T> T sum(T const& parameter1, T const& parameter2)
 6 {
 7     return parameter1 + parameter2;
 8 }
 9 int main()
10 {
11     int a = 10;
12     int b = 20;
13     cout << "结果为:" << sum(a, b) << endl;
14 
15     double d = 10.00;
16     double e = 20.11;
17     cout << "结果为:" << sum(d, e) << endl;
18 
19     string s = "一花一世界,";
20     string g = "一叶一菩提。";
21     cout << "结果为:" << sum(s, g) << endl;
22     system("pause");
23     return 0;
24 }

结果为:

结果为:30
结果为:30.11
结果为:一花一世界,一叶一菩提。

 类模板: template <class type> class classname(){}; 

不管是类模板还是函数模板<>中的class其实还可以用typename代替,他们的作用完全一样,后面跟一个数据类型。对于函数模板我们还可以重载。

原文地址:https://www.cnblogs.com/xiaodangxiansheng/p/11045483.html