#include<iostream>
#include<string>
#include<fstream>//头文件包含
using namespace std;
//函数模板
// 函数模板利用关键字template
// 使用函数模板有两种方式:自动类型推导、显式指定类型
// 模板的目的是为了提高复用性,将类型参数化
//两个整形交换函数
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 test02()
{
int a = 10;
int b = 20;
//利用函数模板交换
//两种方式使用函数模板
//1、自动类型推导
myswap(a, b);
//2、显示指定类型
myswap<int>(a, b);
cout << "a= " << a << endl;
cout << "b= " << b << endl;
}
void test01()
{
int a = 10;
int b = 20;
swapInt(a, b);
cout << "a= " << a << endl;
cout << "b= " << b << endl;
double c = 1.23;
double d = 2.34;
swapDouble(c, d);
cout << "c= " << c << endl;
cout << "d= " << d << endl;
}
int main()
{
//test01();
test02();
system("pause");//按任意键继续
return 0;//关闭程序
}