C++-------泛型编程

C++的泛型编程允许编写与类型无关的通用代码,以提高代码复用。函数模板是其基础,通过template关键字和typename或class声明。在编译时,函数模板会根据传入的实参类型推演生成对应类型的函数。类模板同样可以实例化,实例化后的类模板才成为真正的类。模板匹配原则包括非模板函数与模板函数的共存与选择,以及显式和隐式实例化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

泛型编程

在我们编程中,经常会遇到这种情况:几个函数的实现逻辑是一样的只是参数类型或个数不同。那么还要一个一个写吗?代码怕是太冗余了。
C++提供了泛型编程,我们可以给编译器提供一个模板,让编译器通过不同的类型来生成对应的函数。
**泛型编程:**编写与代码类型无关的通用代码,是代码复用的一种手段。

模板

模板是泛型编程的基础。
template是模板的关键字
typename类型名关键字,也可以用class,但不能用struct代替class

  • 函数模板
    以swap函数为例,要实现不同类型的交换
void swap(int& a,int& b){
   
	int tmp = a;
	a = b;
	b = tmp;
}
void swap(char& a, char& b){
   
	char tmp = a;
	a = b;
	b = tmp;
}
void swap(double& a, double& b){
   
	double tmp = a;
	a = b;
	b = tmp;
}

使用函数模板之后

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值