/* C++编程时对于仅仅是参数类型不同的函数,通过使用重载方法,可以使用相同的函数名。这样给我们使用这些函数带来了方便,不用记忆过多的函数名称。例如: */
#include <iostream>
using namespace std;
int myMax(int& a, int& b)
{
cout << "参数为int类型的myMax函数被调用..." << endl;
return (a > b ? a : b);
}
long myMax(long &a,long &b)
{
cout << "参数为long类型的myMax函数被调用..." << endl;
return (a > b ? a : b);
}
int main()
{
int a = 3;
int b = 5;
cout <<"结果是" << myMax(a, b) << endl;
long A = 70000;
long B = 80000;
cout << "结果是" << myMax(A,B) << endl;
system("pause");
return 0;
}
/* 运行结果:
参数为int类型的max函数被调用...
结果是5
参数为long类型的max函数被调用...
结果是80000
请按任意键继续. . .
*/
/* 但从以上的例子可以看出,我们在使用myMax函数时,虽然不需记着具体调用哪个函数,确实方便;但从编程的角度看,我们毕竟给myMax函数写了两遍代码,增加了代码的长度,代码效率不高。如何解决这个问题,就是本文准备介绍的模板函数。模板函数是用于生成基于类型参数的函数的一种机制,也就是说类型是作为参数传入函数的函数,具体是怎样做到的,下面将前面重载函数的例子用模板函数的方式表示*/
#include<iostream>
using namespace std;
template <typename T>
T myMax(T a, T b)
{
return (a > b) ? a : b;
}
int main()
{
int a = 3;
int b = 5;
cout << "结果是" <<myMax<int>(a, b) <<endl; //<int>可以不写
long A = 70000;
long B = 80000;
cout << "结果是" << myMax<long>(A, B)<< endl;//<long>可以不写
system("pause");
return 0;
}
/*
结果是5
结果是80000
请按任意键继续. . .
*/
/* 从myMax函数的代码长度可以看出模板函数在代码简洁方面非常明显,总体上说,涉及的参数类型越多,代码优化的效率越高。这里仅是简单介绍了一下函数模板的入门只是,其深入的内容还有很多,有兴趣的朋友可做深入研究。*/
模板(函数模板)---C++
2024-02-14 03:26:01 26 阅读