当前位置: 首页 > news >正文

C++ 函数模板

为了代码重用,代码就必须是通用的;通用的代码就必须不受数据类型的限制。那么我们可以把数据类型改为一个设计参数。这种类型的程序设计称为参数化程序设计。软件模块由模板(template)构造。包括函数模板(function template)和类模板(class template)。
函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,简化重载函数的设计。
函数模板定义如下:

template<模板参数表>
返回类型 函数名(形式参数表)
{...;//函数体
}

<模板参数表>:尖括号中不能为空,参数可以有多个,用逗号分开。模板参数主要是模板类型参数。
模板类型参数代表一种类型,由关键字class或者typename后加一个标识符构成,在这里两个关键字的意义相同,它们表示后面的参数名代表一个潜在的内置或用户设计的类型。
示例:

#include<iostream>
using namespace std;
template<class T>
T my_max(T a,T b)
{return a > b ? a : b;
}
int main()
{cout << my_max(12, 23) << endl;cout << my_max('a', 'b') << endl;cout << my_max(12.23, 34.45) << endl;return 0;
}

输出结果为:
在这里插入图片描述
函数模板根据一组实际类型或(和)值构造出独立的函数的过程通常是隐式发生的,称为模板实参推演。
模板实参推演的过程如下:
在这里插入图片描述
在编译过程中,根据函数模板的实参构造出独立的函数,称为模板函数,这个构造过程被称为模板实例化。

http://www.lryc.cn/news/96999.html

相关文章:

  • 大语言模型分词的 chunk_size 和 chunk_overlap 说明和验证
  • OpenStack - 构建强大的云计算平台
  • 在CSDN学Golang分布式中间件(ElasticSearch)
  • web-文件包含
  • 20230724----重返学习-vue3知乎日报项目实战
  • 1.react useState使用与常见问题
  • LLaMA2可商用|GPT-4变笨|【2023-0723】【第七期】
  • [SQL系列] 从头开始学PostgreSQL 自增 权限和时间
  • 【云原生】Kubernetes之Secret
  • 细说小程序底部标签---【浅入深出系列006】
  • 【VUE】使用elementUI上传组件-提示不存在
  • Flutter Windows通过嵌入Native窗口实现渲染视频
  • MySQL学习笔记 ------ 库和表的管理
  • python中去除字符串中指定的字符
  • Java实现商品ID获取京东商品详情Desc商品描述数据方法
  • 1-高性能计算研究
  • swagger快速升级方案
  • sql中with as用法/with-as 性能调优/with用法
  • 大数据课程C5——ZooKeeper的应用组件
  • Redisson实现简单消息队列:优雅解决缓存清理冲突
  • php-golang-rpc 简单的jsonrpc实践
  • Apipost变量高亮展示,变量操作更流畅
  • SSIS对SQL Server向Mysql数据转发表数据 (完结)
  • vue+Element-ui实现树形组件、表格树
  • 【iPadOS 开发】打开 iPad 的开发者模式的方法
  • 矩阵对角线元素的和
  • 看了这篇文章,我也会用grid布局了
  • {“msg“:“invalid token“,“code“:401}
  • Qt Qml自定义模态对话框
  • 【前端知识】React 基础巩固(三十)——CSS编写方式