CPP_template
泛型编程是独立于任何特定类型的方式编写代码。模板是泛型编程的基础,模板使程序员能够快速建立具有类型安全的类库集合和函数集合,它的实现,方便了大规模的软件开发。
模板提供通用类型和通用函数,定义中包含template,和一对尖括号<>,尖括号里面是模板参数。模板参数与普通参数的区别在于,模板参数不仅可以传变量和值,还可以传类型。
模板应放到头文件中。模板本质上就是一种宏定义。
1. 函数模板
template<类型形式参数表> 返回类型 functionName(形式参数表)
{
//函数定义体
}
其中返回类型可以包含基本数据类型,也可以包含类类型。如果是类类型,则需加前缀class。
template <typename T> T abs(T x)
{
return x<0? -x:x;
}
int n=5; double d=-5.5;
cout<<abs(n)<<endl;
cout<<abs(d)<<endl;
// 模板函数
template <class T> T power(T a, int exp)
{
T ans = a;
while(--exp>0){
ans *= a;
}
return (ans);
}
应用时:
函数名 <模块参数> (函数参数)
power<int> (2, 2) = 4;
2. 类模板
template <模板参数表> class 类名
{
类成员声明;
};
在类模板以外定义成员函数
template <模板参数表> 类型名 类名<参数列表>::函数名(参数表)
template <typename T> class Example{};
模板类中的函数都是模板函数。
template <class T> Node<T>::~Node()
{
......
}
CPP_template相关推荐
- 【C++】深蓝学院课程:C++基础与深度解析 - 课程知识点目录
第5章: 表达式基础与详述(类型转换) 第3节: 表达式基础:类型转换 28:[视频]类型转换 整型提升和浮点提升(无损转换) reinterpret_cast:主要用于指针相关的类型转换 为什么不建 ...
最新文章
- php 依赖注入框架,通过实现依赖注入和路由,构建一个自己的现代化PHP框架
- laravel mysql like_Laravel数据库查询中对 like 的值进行转义
- 去除linux控制台光标
- UVa 1583 - Digit Generator
- 如何解决编程的误差问题_柏威机械丨高精密零件加工是如何解决误差精度问题的?...
- 详细解析WSAAsyncSelect模型
- 阿里云数据库开源发布:PolarDB HTAP的功能特性和关键技术
- 王坚博士与计算机关系,与王坚副院长面对面:向王坚提问
- Docker Compose 网络介绍
- 数据意识崛起,从企业应用看BI软件的未来发展 1
- 黄聪:JQUERY的datatables插件,Date range filter时间段筛选功能
- weblogic系列漏洞整理 -- 1. weblogic安装
- linux 导出insert sql server,【IT爱好者】SQL Server自动生成INSERT语句(在SQL2005下测试通过)...
- ECSHOP 大商创 对接易支付接口
- python实时读取串口数据_串口的数据采集、以及数据的实时显示
- 实现一个在线抽奖系统,就算是个小白看了也能做出来(附源码)
- 打鼾,是一种全身性疾病
- V2X测试系列——如何实现C-V2X HIL测试
- P3942 将军令 [贪心]
- Kibana7.9.2设置elasticsearch索引过期时间,到期自动删除
热门文章
- pdnovel.php_Pdnovel 在線閱讀體驗
- jquery获取img的src值_JQuery
- python中plot画图_matplotlib基础绘图命令之errorbar的使用
- 如何用禅道写出一份让开发膜拜的测试用例?超神级测试用例库
- 新鲜角度看问题:从Python角度解析Selenium原理
- ssr机场_史丹索普SSR草莓绑苗工作两周
- html块级页面居中,几个并排div的CSS / HTML居中
- python django博客源码_利用Django实现一个博客(附全部源码)
- docker 安装_Docker-安装
- 苏州netapp存储服务器维修,NetApp存储日常维护手册 v12.doc