模板函数(笔记)

模板函数提供了一种在C++中实现泛型编程的方法,允许创建通用函数以适应不同数据类型。它们避免了重载函数的重复代码,并在需要时由编译器自动生成特定类型的函数。模板的声明和使用涉及`template`关键字和`typename`或`class`。函数模板可以被隐式或显式实例化,并且在函数调用时,非模板函数、具体化模板函数和模板函数按照特定顺序考虑。在处理运算中的类型时,编译器会根据上下文确定结果类型。
摘要由CSDN通过智能技术生成

模板函数:
函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。是通用函数的描述,泛型定义函数。需注意的是,模板函数不创建任何函数,只是告诉编译器如何编译。也就是说模板函数本身不占任何空间,只有定义了特定类型后才需空间储存这个函数。

为什么使用模板函数:
当使用不同类型参数函数时,能够节省时间修改函数,而且不用手工修改,可靠。当需要多个将同一算法用于不同类型的函数时,模板函数为最好的选择。

声明和使用:

eg.
template <typename AnyType>
void Swap(AnyType &a, AnyType &b)
{
    AnyType temp;
    temp = a;
    a = b;
    b = temp;
}

关键字为template和typename(也可以用class)。至于AnyType是表示任何数据类型,由程序员按c++命名规则命名。

重载函数模板:
与普通函数重载相同,也是函数特征值必不同。

eg./*
以下这个例子说明了重载函数模板,程序员可以通过传的参数不同来选择调用交换元素或是交换数组的函数。
而这个例子还说明了另一个问题,看交换数组的函数参数,最后有个int n,这个是指定的具体类型。
*/
template<typename T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值