C++后端面试(5):模板类

本文探讨了C++中的模板类,旨在提供一个通用的编程解决方案。文章首先介绍了模板类产生的背景,如通过模板避免重载函数的冗余。然后详细阐述了模板类型参数的使用,包括作为函数返回参数的情况,并给出了具体示例。特别是,文章讲解了类模板的定义,展示如何实例化模板类并说明了编译器如何根据实参类型推断模板参数。

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

本文主要参考了C++ Primer 5,模板类和泛型编程

1 背景

模板类产生的背景呢,就是想要创建一个通用的函数模板,模板就和类一样,可以实例化,实例化时不需要任何参考既可以应用char,也可以应用int和double等;
比如:比较int compare(int a,int b)和 函数int compare(double a,double b);
初始想法就是定义多个重载函数的方法;
重载函数,定义的函数除了形参不同,函数内部大体都一样,所以面对这样的问题,有了泛型编程模板类

对于上面比较大小可以定义一个模板类:

template <typename T> 
//初次接触模板类,可能对这种定义方式比较乱;
//简而言之,可以将  T 看出任意一个类型参数 而typename就是定义这是一个模板参数(个人理解,帮助理解,不是严格的定义)
// 定义完之后 T等同于任何一个参数 包括char int double float,class,vector等
//就像搓麻将时候的赖子,typename  T  目的就是定义牌面是T的牌可以当赖子
//那么以后打牌时,T可以当任意牌打出;
int compare(const T &v1,const T &v2)
{
   
	if(v1<v2)return -1;
	if(v2<v1) return 1;
	return 0;
}

官方定义:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CoomCon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值