函数模板特化(一)

/*
	演示: 模板函数及其特化函数的使用
*/
#include <stdio.h>
#include <iostream>
#include <string>
#include <map>

using namespace std;

template<typename T>
T add(T n1, T n2)								// 通用模板函数
{
    return n1 + n2;
}

//template<> int add(int n1, int n2)			// 模板函数特化1
template<> int add<int>(int n1, int n2)			// 模板函数特化1: 这种写法也可以
{
    return n1 - n2;
}

//template<> float add(float n1, float n2)		// 模板函数特化2
template<> float add<float>(float n1, float n2)	// 模板函数特化2
{
    return n1 * n2;
}

int main()
{
    double x1 = 2.2;
    double x2 = 1.4;
    double x = add(x1, x2);		// 调用: 通用模板函数
	cout << x << endl;

    int a1 = 2.2;
    int a2 = 1.4;
    int a = add(a1, a2);		// 调用: 模板函数特化1
	cout << a << endl;

    float x11 = 2.2;
    float x21 = 1.4;
    float x31 = add(x11, x21);	// 调用: 模板函数特化2
	cout << x31 << endl;

	long a11 = 2.2;
	long a21 = 1.4;
	long a31 = add(a11, a21);	// 调用: 通用模板函数
	cout << a31 << endl;

    return 0;
}

/*

运行情况:
D:\profile\Desktop\test>make
g++ -o a.exe a.cpp

D:\profile\Desktop\test>a
3.6
1
3.08
3

*/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值