c++模板(2)--函数模板

c++模板--函数模板

1 函数模板

什么是函数模板?

通过下面的例子,我们来了解一下什么是函数模板。

假设:我们需要两个数据交换的函数,例如int数据交换和double数据交换。我们的代码实现如下:

#include <iostream>
using namespace std;

// int数据交换
void SwapInt(int& a,int& b)
{
	int temp = a;
	a = b;
	b = temp;
}

// double数据交换
void SwapDouble(char& a,char& b)
{
	char temp = a;
	a = b;
	b = temp;
}

int main()
{
	int a = 10, b = 20;
	SwapInt(a,b);
	cout << "a = " << a << " b = " << b << endl;
	
	double c = 1.5, d = 3.14;
	SwapInt(c,d);
	cout << "c = " << c << " d = " << d << endl;

	return 0;
}

我们需要使用两个函数SwapInt和SwapDouble来实现int数据交换和double数据交换。

如果,我们使用函数模板,只需要一个函数模板即可,不仅实现了int数据交换和double数据交换,同时,此函数模板还可以实现char数据交换等等。代码如下:

#include <iostream>
using namespace std;

// 函数模板,将类型作为参数传递进来,传递int就是Int类型交换,传递double就是double类型交换
// T是一个通用的数据类型
template<typename T>		// typename 和 class 都是一样的,用哪个都可以
void MySwap(T& a,T& b)
{
	T temp = a;
	a = b;
	b = temp;
}

int main()
{
	int a = 10, b = 20;
	//1. 这里有个需要注意点,函数模板可以自动推导参数的类型
	MySwap(a,b);
	cout << "a = " << a << " b = " << b << endl;
	
	double c = 1.5, d = 3.14;
	//2. 函数模板可以自动类型推导,那么也可以显式指定类型
	MySwap<double>(c,d);
	cout << "c = " << c << " d = " << d << endl;

	return 0;
}

用模板是为了实现泛型,可以减轻编程的工作量,增强函数的重用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值