Tsai笔记:C++学习随性笔记(1)—— template函数模板
Tsai三步。(第一步,功能说明。第二步,结果图显示。第三步,代码展示)
第一步,功能说明。
在c++入门中,很多人会接触swap(int &a, int &b)这样的函数类似代码如下:
void swap(int &a , int &b)
{
int temp = a;
a = b;
b = temp;
}
但是如果要支持long,string,自定义class的swap函数,代码和上述代码差不多,只是类型不同。如果在使用不同类型的函数时,那么我们就不得不重复定义一个完全一样的函数体,这显得十分烦琐并且容易出错。
所以我们定义了一个通用的函数模板,而不是为每个类型都定义一个新函数。一个函数模板就是一个公式,可用来生成针对特定类型的函数版本。函数模板的声明形式如下:
template <class T> function_declaration;
template <typename T> function_declaration;
function_declaration部分完全和我们平时定义函数一样,也可以添加返回类型,如void、bool、int、char等等。
template<typename T> void swap(T& t1, T& t2)
{
};
#include "method.cpp"
第二步,结果图显示。
![](https://i-blog.csdnimg.cn/blog_migrate/dc6cb1edc7f5cff39060bfccd5366a90.png)
第三步,代码展示。(很详细的注释,有C++基础的人都能看懂。)
#include <stdio.h>
template<typename T> void swap(T& t1, T& t2)
{
T tmpT;
tmpT = t1;
t1 = t2;
t2 = tmpT;
}
int main() {
//模板方法
int num1 = 1, num2 = 2;
swap<int>(num1, num2);//这里可以直接用swap(num1, num2);即实例化函数模板
printf("num1:%d, num2:%d\n", num1, num2);
getchar();
return 0;
}
将学习C++过程中遇到的小问题解决并记录下来,如有错误,请各位前辈指导。