C ++函数模板和重载之间的区别

C ++函数模板和重载微信公众号之间的区别:杨元新如果您认为本文对您有所帮助,请留言讨论!首先,让我们看一个示例:#include& lt; iostream& gt;使用命名空间std; // C ++函数模板的两个定义// template& lt;类型名称T& gt;或模板< class T& gt;模板< typename T1& gt; T1 check_max(T1 x,T1​​ y);模板& lt; class T& gt; T print_value(T x,T y); // C ++重载int add(int x,int y); int add(int x,int y,int z);字符串添加(字符串str,字符串str1,字符串str2); int main(void){int x = 33;整数y = 44;长l1 = 333,l2 = 444;浮点数f1 = 3.14,f2 = 3.15926; //系统会自动将T1类型识别为int类型cout& lt;& lt; " max(x,y)="<< check_max(x,y)& lt;& lt;恩德尔//系统会自动将T1类型识别为long cout& lt;& lt; " max(x,y)="<< check_max(l1,l2)& lt;& lt;恩德尔//系统会自动将T1类型识别为float类型cout& lt;& lt; " max(x,y)="<< check_max(f1,f2)& lt;& lt;恩德尔cout& lt;& lt; " ======================================= & lt;& lt;恩德尔print_value(x,y); print_value(l1,l2); print_value(f1,f2); //使用重载的cout& lt;& lt; " ====================================== & lt;& lt;恩德尔cout& lt;& lt; add(x,y)& lt;& lt;恩德尔cout& lt;& lt; add(x,y,x)& lt;& lt;恩德尔cout& lt; & lt; add(“ hello”,“”,“ world”)& lt;& lt;恩德尔返回0;}模板& lt; typename T1& gt; T1 check_max(T1 x,T1​​ y){返回x& gt; ?? x:y;}模板& lt; typename T& gt; T print_value(T x,T y){cout<<“ x:”& lt;< x& lt;& lt;恩德尔cout<< y;"<<< lt; y& lt;& lt; endl;} int add(int x,int y){返回x + y;} int add(int x,int y,int z){return x + y + z;}字符串add(string str,string str1,string str2){return str + str1 + str2;}操作结果:& nbsp;& nbsp;& nbsp;我们可以从代码中了解到,通常有两种方法来定义模板,即:template & lt;类型名称T& gt;或模板。有人可能会问类型名称和类之间的区别是什么。
实际上,早期的C ++没有关键字typename,因此无论是函数模板还是类模板,都使用class的定义。 C ++在以后很完美,因此有很多类型名称用于区分定义是函数模板还是类模板,但本质是相同的。
& nbsp; & nbsp; & nbsp;所谓功能模板实际上是创建通用功能。没有指定函数的类型和形式参数的类型,但是使用虚拟类型来表示它。
该一般功能成为功能模板。具有相同功能主体的任何功能都可以用此模板替换,而不是定义多个功能,只需在模板中定义一次即可。
调用该函数时,系统将根据实际参数的类型替换模板中的虚拟类型。 ,从而实现不同功能的功能。
& nbsp; & nbsp; & nbsp;如例程中所示,定义了两个函数模板,checkmax和printvalue,但是我在这里没有定义相关的类。调用该函数时,可以输出正确的值,这意味着无论是声明还是类型名或类,其本质是相同的,但是我们可以人为地区分它。
checkmax是我们定义的模板函数,用于确定大小,而printvalue用于打印变量数据,仅此而已。 & nbsp; & nbsp;与函数重载相比,模板具有独特的优势。
它不需要重复定义,因此使用起来要比函数重载更为简洁,但是应该注意,函数模板仅适用于函数参数,如果数量相同但类型不同,并且函数主体为同样,如果参数数量不同,则无法使用功能模板。这是相对于功能重载而言功能模板的缺陷。
& nbsp; & nbsp; & nbsp;让我们再次修改上述程序,我们定义一个与模板函数check_max完全相同的函数名称,实际上这是一个函数重载。请看以下示例:#include& lt; iostream& gt;使用命名空间std; // C ++函数模板的两种定义方法// template& lt;类型名称T& gt;或模板< class T& gt;模板< typename T1& gt; T1 check_max(T1 x,T1​​ y); // C ++重载int check_max(int x,int y); int main(void){int x = 33;整数y =

公司: 深圳市捷比信实业有限公司

电话: 0755-29796190

邮箱: ys@jepsun.com

产品经理: 汤经理

QQ: 2057469664

地址: 深圳市宝安区翻身路富源大厦1栋7楼

微信二维码

更多资讯

获取最新公司新闻和行业资料。

  • 共模和差模电感的区别 1.用于抗电磁干扰的两种电感器:共模电感器和差模电感器。2.干扰电磁场在线路之间产生差模电流,对负载造成干扰,称为差模干扰;干扰电磁场在线路和地面之间产生共模电流,共模电流在负载上产生差模电压,造成干扰,即...
  • 差模电感和共模电感的区别   共模电感和差模电感都是抗电磁干扰的有效元件,广泛应用于各种滤波器、开关电源等产品中。然而,共模电感用于抑制共模干扰,而差模电感则用于抑制差模干扰。两者都是重要的滤波电感。虽然都是电感,但两者还是...
  • 共模电感和差模电感区别 共模电感是电路中使用的一种电感器件,可以抑制共模干扰信号。在电路中,由于各种因素,可能会产生干扰信号,从而影响电路的正常工作。其中,共模干扰信号是一种特殊类型的干扰信号,是指电路中两条信号线上同时存在...
  • 怎么区分共模电感和差模电感 共模电感和差模电感都是抗电磁干扰的有效元件,广泛应用于各种滤波器、开关电源等产品中。然而,共模电感器用于抑制共模干扰,而差模电感器用于抑制差模干扰。两者都是重要的滤波电感。这两种电感器都是滤波电感器,...
  • 电感和电容之间的关系是什么? 电感和电容之间的关系是什么?电感和电容是电路中常见的两种无源元件,它们之间有着密切的关系。首先,电感器和电容器都可以储存能量。电感器储存磁场能量,而电容器储存电场能量。当电感和电容的值满足一定条件时,...
  • 共模电感怎么接线与差模电感的区别   共模电感和差模电感的区别共模电感和差模电感的电路图  1、骚扰电磁场在线-线之间产生差模电流,在负载上引起干扰,这就是差模干扰;骚扰电磁场在线-地之间产生共模电流,共模电流在负载上产生差模电压,引起干...
  • 差模电感与共模电感的区别 共模电感和差模电感是抗电磁干扰的有效元件之一,广泛应用于各种滤波器、开关电源等产品中。然而,共模电感器用于抑制共模干扰,而差模电感器用于抑制差模干扰。两者都是重要的滤波电感。虽然它们都是滤波电感,但仍...
  • 差模电感与共模电感的区别 共模电感器也称为共模扼流圈,通常用于过滤计算机开关电源中的共模电磁干扰信号。在电路板设计中,共模电感器也用作EMI滤波器,以抑制外部高速信号产生的电磁辐射。差模电感是一种电感量大,对差模高频干扰大的电感,...
  • 共模电感与差模电感区别 1.共模电感器的绕组线通常是双向的;单向差模电感器是绕制的。2.共模干扰抑制滤波器可以通过电感-电感中的共模来调用;差模干扰抑制滤波器,以及称为差模电感器的电感器。3.围绕芯的匝数等于相同的匝数,并且导线的直径...
  • 共模电感与差模电感区别 1、共模电感器的绕组线通常是双向的;单向差模电感器被卷绕。2、共模干扰抑制滤波器可以用电感电感中的共模被称作;差模干扰抑制滤波器和称为差模电感的电感器。3、等于相同数量的围绕述芯的匝数,等于导线的直径。两...
  • 电容器两极板间加金属板 在电容器中,两极板之间加上金属板可以提高电容器的等效串联电阻(RCE),这会降低电容器的电容量。通常情况下,金属板的作用是提高电容器的耐压水平,并增加电容器的等效串联电阻。当电容器两极板之间加上金属板时,...
  • 电容器加金属板和绝缘板 在一个电容器中,金属板和绝缘板的作用是不同的。金属板:金属板是电容器中的一个导体,它允许电流通过。当电流通过金属板时,会在金属板上产生电压降,这反过来又会在金属板上产生电流。这种电流称为局部电流,它在...
  • TVS管和压敏电阻区别 目前,国内不少需进行浪涌保护的设备上使用的是压敏电阻器。TVS管一般用于电路快速瞬变脉冲群的防护,其特性比压敏电阻器优越得多,有以下的共同点和区别:1.TVS管和压敏电阻不像开关元件那样具有开关特性,而是类似稳压...
  • 0欧电阻和磁珠的区别 一、 磁珠的定义和作用  磁珠,也称为磁珠滤波器,是具有特定电感和电阻特性的无源元件。它们的主要功能是吸收超高频噪声和抑制电磁干扰。磁珠通常由铁氧体材料制成,其内部电感随着频率的增加而增加,从而实现...
  • tvs管和压敏电阻的区别   在电路保护设计中,电路保护装置的选择和应用是否合理?它将直接影响电子系统电路保护方案的保护效果。  TVS管(瞬态电压抑制器),也称为雪崩击穿二极管,是二极管形式的高效保护装置,通常用于防止端口...
  • 电感饱和电流和温升电流的区别 一些大功率电感器、插入式屏蔽电感器,磁棒电感器和磁环电感器等器件用于大功率和大电流电路。通常,他们需要测试额定电流和饱和电流。特别是,他们需要测试温升电流,以供后续电路设计参考。饱和电流isat:电感变化,随...
  • 共模和差模电感可以集成在一块吗 看到有家厂商,共模电感看似和普通的共模电感相似,可是却包含了差模电感,觉得奇怪,请教共模电感和差模电感二合一,如何实现啊   本实用新型涉及一种集成差模的共模电感器及电源,包括一体成型的外框,以及...
  • 温度传感器与开关的区别和应用 在日常生活中,温度传感器和温度开关都是用来监测和控制环境温度的重要设备,但它们的工作原理、使用方式及应用场景有所不同。温度传感器是一种能够感知温度变化,并将温度的变化转换为可输出的信号(如电压、电流或...
  • 保险丝快断和慢断区别  慢速熔断器和快速熔断器的主要区别在于它们能够承受瞬时脉冲电流,这意味着当机器在没有动作的情况下打开或关闭时,它们能够抵抗浪涌电流的影响,从而确保设备的正常运行。因此,慢速熔断器通常被称为耐浪涌保...
  • 电阻金属膜和碳膜的区别 一、从材质上判断金属膜电阻是是用镍铬或类似的合金真空电镀技术,着膜于白瓷棒表面,经过切割调试阻值,以达到最终要求的精密阻值。金属膜电阻器提供广泛的阻值范围,有着精密阻值,公差范围小的特性。亦可应用于金...