C++中什么叫做函数模板?

本文深入解析了函数模板的概念,展示了如何使用虚拟类型参数创建通用函数,适用于参数类型不同但数量和函数体相同的情况。通过实例代码,详细说明了template关键字及typename的用法,帮助读者理解函数模板的定义和应用。

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

函数模板:

所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表,这个函数类型就称为函数模板。

具体表现:模板定义,

  1. #include<iostream>
    
    using namespace std;
    
    template <typename T>
    
    T max( T a,T a, T c)
    
    {
    
         if(b>a) a = b;
    
         if(c>a) a = c;
    
         return a;
    
    }
    
    int main()
    
    {
    
        int i1 = 8,i2 =5 ,i3 = 6 ,i;
        double d1 = 56.9, d2 = 90.76, d3 = 43.1, d;
        long g1 = 32323,g g2 = 59899, g3 =133244, g;    
        i = max(i1 ,i2 ,i3 );
        d = max(d1, d2, d3);
        g = max(g1, g2, g3);
        cout <<"i_max = "<<i <<endl;
        cout <<"d_max = "<<d <<endl;
        cout <<"g_max = "<<g <<endl;
        return 0
    
    }

其中的定义模板那里:

template <typename T> 函数定义 或 者template <class T>
template 含义是 模板,尖括号中先写关键字,typename(或class)后面跟一个类型参数T,这个类型参数实际上是一个虚拟的类型名,表示模板中出现的T是一个类型名,但是现在并未指定它是哪一种具体的类型。

class 和typename的作用相同,都是表示类型名,二者可以互换,以前的c++程序员都用class,新标准c++把typename加到标准c++中的,因为class很容易于c++中的类混淆,而用,typename 是不久前才被加到标准c++中的,而用typename的含义就很清楚,是类型名(而不是类名)。

类型参数也可以不止一个 template <typename T1,typename T2>

只适用于函数参数个数相同而函数参数类型不同,且函数体相同的情况,如果函数的参数个数不同,则不能用函数模板。

整体来说,函数模板就是只适用于函数的参数个数相同而类型不同,且函数体相同的情况,如果函数的参数的个数不同,则不能用函数模板。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值