千家信息网

C++模版函数怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关C++模版函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C++中的模版总体可以分为两大类:模版函数、模版类。本篇文章先写模版函数,接下来
千家信息网最后更新 2026年11月01日C++模版函数怎么用

这篇文章给大家分享的是有关C++模版函数怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

C++中的模版总体可以分为两大类:模版函数、模版类。本篇文章先写模版函数,接下来会介绍模版类。

定义:模版函数是通用的函数描述,也就是说它们使用通用类型来定义,其中的通用类型可用具体类型替换。

代码实例:

#include //模版函数的声明templatevoid Swap(T& a,T& b);int main(){    int i = 10;    int j = 20;    std::cout<<"i=" << i << "," << "j=" <
  • 对于给定的函数名,可以有非模版函数,模版函数和显示具体化模版函数以及它们的重载版本。

  • 显示具体化的原型和定义应该以template<>打头,并通过名称来指出类型。

  • 具体化将覆盖常规模版,而非模版函数将覆盖具体化和常规模版。

  • 下面是用于交换Job结构的非模版函数,模版函数和具体化的原型。

    void Swap(job &,job&);//非模版函数

    template

    void Swap(T&,T&);//模版函数

    template <> void Swap(job&,job&);//显示具体化函数,其中Swap后的job参数可去掉,则函数签名为template <> void Swap(job&,job&);

    前面指出,如果有多个原型,编译器在选择原型时,非模版将优先于显示具体化和模版版本,而显示具体化将优先于使用模版生成的版本。

    如下面的调用:

    double u,v;

    Swap(u,v);//使用通用的模版

    job a,b;

    swap (a,b)//使用显示具体化版本。

    实例化和具体化:

    为了进一步了解模版,必须理解术语实例化和具体化。记住,在代码中包含函数模版本身并不会生成函数的定义,它只是一个用于生成函数定义的方案。编译器使用模版为特定类型生成定义时,得到的是模版实例(instantiation)。例如:函数调用Swap(i,j),使编译器生成一个Swap()的一个实例,该实例使用int类型。模版并非函数定义,但使用int的模版实例是函数定义。这种实例化方式被称为隐式实例化,因为编译器之所以知道需要定义,是由于程序调用Swap()时提供了int参数。

    现在编译器还可以允许显示实例化,这意味着可以直接命令编译器生成特定的实例,如Swap。其句法是,声明所选的种类-用<>符号指示类型,并在声明前加上关键字template:

    template void Swap(int,int);//显示实例化

    实现了这种特性的编译器在看到上述声明后,将使用Swap()模版生成一个int类型的实例。

    与显示实例化不同的是,显示具体化使用下面两个等价声明的之一:

    template <> void Swap(int,int);

    template <> void Swap(int,int);

    区别在于,这些声明的意思是"不要使用Swap()模版来生成函数定义,而应该使用独立的、专门的函数定义显示为int类型生成函数定义。

    注意:试图在一个编程单元中使用同一种类型的显示具体化与显示实例化将出错。

    感谢各位的阅读!关于"C++模版函数怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    模版 函数 实例 类型 生成 编译器 编译 代码 参数 原型 常规 版本 C++ 不同 特征 两个 内容 多个 如上 数组 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技 百单网互联网科技有限公司怎么样 互联网科技公司华为 科技互联网龙头 金融科技 互联网金融 华宇互联网科技 上海喔噻互联网科技 沃里互联网科技 苏州大垚互联网科技 中国最先进互联网科技公司 湖南洣水互联网科技有限公司扣款 深圳前海聚择互联网科技有限公司 汽车互联网创新科技园 茂名市互联网科技产业园 玉溪互联网科技怎么选 浙南科技城互联网大厦建设工程 佛山市翊博互联网络科技有限公司 互联网科技大赛获奖感言 陕西九四连强互联网科技有限公司 银川新华互联网科技学校招聘 科技互联网 互联网科技公司发展 火传媒上海互联网科技 互联网科技美容 成都玖崟互联网科技有限公司乐商圈怎么样 湖南一路畅行互联网科技 西安小鹰速贷互联网科技有限公司 长沙茂晟互联网科技有限公司 银行科技岗属于互联网吗 10位科技互联网大佬
    0