(C++)实例化和具体化以及它们的声明方式——简单总结和举例说明

本文详细介绍了C++中的模板实例化和具体化,包括显式实例化和隐式实例化的区别,以及具体化的应用。通过实例展示了如何声明和使用这两种技术,并强调了在使用时应注意的事项,如避免在同一文件中重复实例化和具体化同一类型。
摘要由CSDN通过智能技术生成

在代码中包含函数模板本身并不会生成函数定义,它只是一个用于函数定义的方案。 模板类或模板函数并不是真正的类或函数,它们是编译器指令,说明如何生成类或函数,模板的具体实现可以分为实例化和具体化。

编译器使用模板为特定类型生成函数定义时,得到的是模板实例。

1、实例化:实例化有两种形式,分别为显式实例化和隐式实例化。模板并非函数定义,实例式函数定义。

模板例子:
template <typename T>
void Swap(T &a, T &b)

(1)显示实例化:直接命令编译器创建特定的实例。

声明方式:
(a)直接在程序中使用函数创建。
eg:Swap<int>(a,b);
(b)声明所需要的种类——用<>符号指示类型,并在声明前加上关键字template。
eg:template void Swap<int>(int, int);

(2)隐形实例化:函数调用导致编译器生成改该函数的实例。使用模板之前,编译器不生成模板的声明和定义示例,后面有程序用了,编译器才会根据模板生成一个实例函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小黄TimTim仔

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

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

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

打赏作者

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

抵扣说明:

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

余额充值