#include <iostream>
using namespace std;
//函数模板,类模板 提高算法通用性
template <typename T>
void mySwap(T& ob1,T& ob2)
{
ob1 ^= ob2;
ob2 ^= ob1;
ob1 ^= ob2;
}
int main()
{
int a =5;
int b =4;
mySwap(a,b);
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout << "Hello World!" << endl;
return 0;
}
注意:1. 不允许自动类型转化
就同样一个T 传两个不同类型的参数即错误。
2. 普通函数和函数模板同时识别优先选择普通函数
3. 显示指明函数模板
myAdd<>(10,20) //尖括号里加不加类型都可以
//尖括号指明类型可以进行自动类型转化
template <typename T>
T myMax(T a,T b)
{
return a>b?a:b;
}
template <> Person myMax<Person>(Person a,Person b)
{
return a.num>b.num?a:b;
}