C++函数模板

基本用法:


模板定义:

template <class type>
type Sum(type xvar, type yvar){
	return xvar+yvar;
}


模板定义二:

template <class type,int len>

type GetMax(type array[len]){
	type ret=array[0];
	for(int i=1;i<len;i++){
		ret = (ret>array[i])?ret:array[i];
	}
	return ret;
}


使用方法:

int _tmain(int argc, _TCHAR* argv[])
{
	int iRet=Sum<int>(10,20);
	printf("%d\n",iRet);


	int array[5] = {1,2,3,4,5};
	int iret = GetMax<int,5>(array);
	printf("%d\n",iret);

	double dset[3] = {10.5,11.2,9.8};
	double dret = GetMax<double,3>(dset);
	printf("%f\n",dret);

	return 0;
}


下面是完整的代码:


template <class type>

type Sum(type xvar, type yvar){
	return xvar+yvar;
}

template <class type,int len>
type GetMax(type array[len]){
	type ret=array[0];
	for(int i=1;i<len;i++){
		ret = (ret>array[i])?ret:array[i];
	}
	return ret;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int iRet=Sum<int>(10,20);
	printf("%d\n",iRet);


	int array[5] = {1,2,3,4,5};
	int iret = GetMax<int,5>(array);
	printf("%d\n",iret);

	double dset[3] = {10.5,11.2,9.8};
	double dret = GetMax<double,3>(dset);
	printf("%f\n",dret);

	return 0;
}




模板重载:

template <class type>
type Sum(type xvar, type yvar){
	return xvar+yvar;
}

template <class type>
type Sum(type array[],int len){
	type ret=0;
	for(int i=0;i<len;i++){
		ret += array[i];
	}
	return ret;
}

int _tmain(int argc, _TCHAR* argv[])
{
	int iret=Sum(10,20);
	printf("整数之和:%d\n",iret);

	int array[5] = {1,2,3,4,5};
	int ret=Sum(array,5);
	printf("数组元素之和:%d\n",ret);

	return 0;
}







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值