合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
>[info] # 函数模板 * C++提供了**函数模板(function template)**,用以解决函数体完全一样,而函数类型和形参类型不一致的情况. * 所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个**虚拟类型**来代表,这个**通用函数**就称为函数模板. * 在调用函数时系统会根据实参的类型来取代模板中的**虚拟类型**,从而实现了不同函数的功能. * 用函数模板比函数重载更方便,程序更简洁.但应注意它**只适用**于函数的参数个数相同而类型不同,且函数体相同的情况,如果参数的个数不同,则不能用函数模板. **定义函数模板的一般形式** * template通用函数定义 * template 通用函数定义 * 类型参数可以不只一个, 根据需要确定个数. template ## **例子** ~~~ /* ***求两个整数或3个整数中的最大数*** */ #include <iostream> using namespace std; template<typename T> //模板声明,其中T为类型参数 T max(T a,T b,T c) //定义一个通用函数,用T作虚拟的类型名 { if(b>a) a=b; if(c>a) a=c; return a; } int main( ) { int i1=185,i2=-76,i3=567,i; double d1=56.87,d2=90.23,d3=-3214.78,d; long g1=67854,g2=-912456,g3=673456,g; i=max(i1,i2,i3); //调用模板函数,此时T被int取代 d=max(d1,d2,d3); //调用模板函数,此时T被double取代 g=max(g1,g2,g3); //调用模板函数,此时T被long取代 cout<<”i_max=”<<i<<endl; cout<<”d_max=”<<d<<endl; cout<<”g_max=”<<g<<endl; return 0; } ~~~