template --声明创建模板I
typename -- 表面其后面的符号是一种数据类型,可以用class代替
T --- 通用的数据类型,名称可以替换,通常为大写字母
使用模板之前:
#include<iostream>
using namespace std;
#include<string>
#include<fstream>//两个整型交换函数
void swapInt(int &a, int &b) {int temp = a;a = b;b = temp;
}//交换两个浮点型函数
void swapDouble(double &a,double &b) {double temp = a;a = b;b = temp;
}//函数模板
template<typename T> //声明 二 = 个模板,告诉编译器后面代码中紧跟着的T不要报错,T是 - 一个通用数据类型二
//函数模板
void mySwap(T &a, T &b) {T temp = a; a = b;b = temp;
}void test01() {int a = 10;int b = 20;swapInt(a,b);cout << " a =" << a << endl;cout << " b=" << b <<endl;double c = 1.1;double d = 2.2;swapDouble(c,d);cout << " c=" << c <<endl;cout << " d=" << d <<endl;
}int main() {test01();system("pause");return 0;}
使用模板之后:
#include<iostream>
using namespace std;
#include<string>
#include<fstream>//两个整型交换函数
void swapInt(int &a, int &b) {int temp = a;a = b;b = temp;
}//交换两个浮点型函数
void swapDouble(double &a,double &b) {double temp = a;a = b;b = temp;
}//函数模板
template<typename T> //声明 二 = 个模板,告诉编译器后面代码中紧跟着的T不要报错,T是 - 一个通用数据类型二
//函数模板
void mySwap(T &a, T &b) {T temp = a; a = b;b = temp;
}void test01() {int a = 10;int b = 20;//swapInt(a,b);//利用函数模板交换//两种方式使用函数模板//1、自动类型推导//mySwap(a,b);//2、显示指定类型.mySwap<int>(a,b); cout << " a =" << a << endl;cout << " b=" << b <<endl;double c = 1.1;double d = 2.2;swapDouble(c,d);cout << " c=" << c <<endl;cout << " d=" << d <<endl;
}int main() {test01();system("pause");return 0;}