函数模板的机制
编译器并不是把函数模板处理成能够处理任意类的函数
编译器从函数模板通过具体类型产生不同的函数
编译器会对函数模板进行两次编译
在声明的地方对模板代码本身进行编译;在调用的地方对参数替换后的代码进行编译
第一次编译:是对函数的语法,句法,词法进行编译;
第二次编译是对参数替换后的代码进行编译
#include<iostream>
using namespace std;
template < typename T>
void my_swap(T &a, T &b)//模板函数
{
T c;
c = a;
a = b;
b = c;
cout << "hello world....." << endl;
}
int main()
{
//当函数参数的类型为 int
int a = 0;
int b = 1;
my_swap(a, b);
//当函数参数的类型为char
char c = 'a';
char d = 'b';
my_swap(c, d);
system("pause");
return 0;
}