C3程序猿C++教程笔记——函数模板

本文深入探讨了函数模板在C++中的应用,对比了函数重载,展示了如何通过模板具体化和实例化来创建更灵活的代码。文章详细解释了模板函数、模板具体化函数和普通函数之间的调用优先级,以及如何在不同数据类型间实现通用编程。

函数模板:
对比函数重载,函数模板,只需要一个函数就搞定

具体化:就是将我们指定的类型,单独处理
template<> void fun<job>(job& j1, job& j2);
实例化:生成指定类型的函数定义
template void fun<job>(job&j1, job&j2);

#include <iostream>
using namespace std;

struct Node
{
	int a;
	double d;
};
//函数调用优先顺序,普通函数优先模板具体化函数调用,模板具体化函数优先模板函数调用
//模板函数
template<typename T>
void fun(T a )//无法使用默认参数,调用这个函数,一定要传参数
{
	cout << a << endl;
}
//模板具体化函数
template<> void fun<Node>(Node no)
{
	cout << no.a << "  " << no.d << endl;
}
//模板具体化函数
template<> void fun<int>(int a)
{
	cout << a << endl;
}
//普通函数
void fun(int a)
{
	cout << a << endl;
}
//实例化
template void fun<double>(double f);
int main()
{
	fun(12);
	fun(12.13);
	fun('a');
	fun("abc");
	//fun();
	system("pause");
	return 0;
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值