所以C++引入了泛型编程概念
在C++里,通过函数模板和类模板来实现泛型编程(类模板在下章将讲解)
函数模板
一种特殊的函数,可通过不同类型进行调用
函数模板是C++中重要的代码复用方式
通过template...关键字来声明使用模板
通过typename关键字来定义模板类型
比如:
template //声明使用模板,并定义T是一个模板类型
void Swap(T&...a, T& b) //紧接着使用T
{
T c = a;
a = b;
b = c;
}
当我们使用int类型参数来调用上面的Swap()时,则T就会自动转换为...//自动调用,编译器根据a和b的类型来推导
float c=0;
float d=1;
Swap(c,d); //显示调用,告诉编译器,调用的参数是float类型...答:
其实编译器对函数模板进行了两次编译
第一次编译时,首先去检查函数模板本身有没有语法错误
第二次编译时,会去找调用函数模板的代码,然后通过代码的真正参数,来生成真正的函数。