泛型参数怎么new_泛型编程,你不知道?(基础篇)
关注“杜明c”,每天进步一点点!
我们学习C++,就常常有人提起泛型编程,什么是泛型编程?我就给大家简单聊一聊。
摘要
-
什么是泛型编程
为什么使用泛型编程
使用方法
什么是泛型编程
泛型编程,简而言之,就是在编程中使用不明确的数据类型,他最大的一个特点就在这个“泛”字,让一套源码适用不同类型的元素。那么这个泛型编程具体什么作用呢?比如我们要我们要写一个求两个数的最大值的函数,一般来说我们都这么实现。
int max(int a, int b){ return a>b?a:b;}
一旦数据的类型发生改变,那么代码就得改一改,这依然很好实现,利用用函数的重载就可以实现。
double max(double a,double b){ return a>b?a:b;}
为什么要使用泛型编程
可是当要求是float型数据的时候,我们就需要添加更多的代码,这无疑增加了很多繁琐的工作,
这时候函数模板就派上了用场。
template <typename T> //定义一个类型TT max(T a, T b) //函数定义{ return a>b?a:b;}cout << max<int>(1,5) << endl;//函数调用----out----5
使用一个函数模板就可以实现这个函数,让我们专注于逻辑实现,而不是繁琐的重复工作。
使用方法
除了函数模板之外,我们还可以使用类模板,他们的用法是一样的。
函数模板
类模板
template //函数模板T max(T a, T b) { return a>b?a:b;}class base {public: base(T new_a) { a = new_a; } T a; T fun() { return a; }};
那么怎么使用呢?其实也很简单。
base<int> a(4);cout << a.fun() << endl;cout << max<int>(1,4) << endl;----out----44
下一章应用篇,说的是使用类模板构造一个vector容器,有兴趣的同学可以看看。
留言区
End
杜明c
专注C/C++
长按关注
泛型参数怎么new_泛型编程,你不知道?(基础篇)相关推荐
- Spring+SpringMVC+MyBatis整合基础篇
基础篇 Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简介 Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试 Spring+S ...
- java 泛型参数_[基础]-Java泛型
一.概述 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所操作的 ...
- Java基础篇:泛型
文章目录 1.为什么要有泛型 2.在集合中使用泛型 3.自定义泛型结构 4.泛型在继承上的体现 5.通配符的使用 1.为什么要有泛型 泛型:标签 泛型背后的核心思想就是:把一个集合中的内容限制为一个特 ...
- More Effective C# Item3 : 运行时检查泛型参数的类型并提供特定的算法
我感觉这一条目应该算是对Item2的补充,还是在"约束"的条件下,如何使得程序得到最优化的结果,颇有"带着脚铐跳芭蕾"的意味.Item2中的条目可以看做是在有约 ...
- typescript箭头函数参数_Typescript 入门基础篇(一)
Typescript 基础 Typescript是Javascript的一个超集.以下typescript简称为ts, 此文章主要是对ts官网文档的一个简化,缩短学习基础时间. 类型基础 ts 的类型 ...
- 由美团技术文章整理---spark性能优化基础篇--开发调优与资源参数调优
文章地址1:Spark性能优化指南--基础篇 - 美团技术团队 文章地址2:Spark性能优化指南--高级篇 - 美团技术团队 目录 一.关于性能优化基础篇--开发调优 1.避免创建重复RDD (1) ...
- ParameterizedType获取java泛型参数类型
这两天在看以前写的ssh项目时,遇到一个问题就是封装的BaseDaoImpl抽象类,构造方法里面是这样写的 Class<T> clazz;public BaseDaoImpl(){Para ...
- Unity TIP4: 带泛型参数的接口注入(interface,generic)
一:第一类需求 接口和类定义如下: public interface ISample<T> {} public class Sample : ISample<SomeClass2&g ...
- Java泛型之泛型参数
在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java专业知识,广州疯狂java培训为你讲解; 泛型机制常用的参数有3个: & ...
最新文章
- 1084 Broken Keyboard
- mysql远程连接问题
- (转)datagridview 自定义列三步走
- 去除桌面图标蓝底的方法步骤
- kindle亚马逊个人文档不显示_4.68亿个人信息泄露,大数据时代裸奔?探悉不落地的文档在线预览...
- silverlight中如何将string(字符串)写入Resource(资源)?
- 体积最小桌面linux,Tiny Core Linux - 体积最小的精简 Linux 操作系统发行版之一 (仅10多MB)...
- 牛客 数学实验(模拟)
- 做产品经理的第1年、第5年和第10年...
- Glide 4.x之生命周期与Activity的绑定原理详解
- STM32F103系列(二):如何使用串口下载程序
- 淘宝API签名异常,如何正确计算SIGN参数?(error code:25 Invalid Signature)
- JWT解析及安全问题
- AlarmClock slow alarm Alarm
- PUM-main makefile报错 #error -- unsupported GNU version gcc versions later than 6 are not supported
- UVA	10387	Billiard
- 【时间序列分析】05.谱函数与谱密度
- 利用正则表达式来验证邮箱
- linux-网站服务
- Android APPUI设计、切图的常用尺寸大全
热门文章
- int x = 0x13 c语言,2004年7月全国高等教育自学考试微型计算机原理与接口技术试题...
- java实现社交平台_GitHub - akpaul9527/symphony: 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台。...
- DataTables怎么给某一列加上click事件
- MSP430F5529 DriverLib 库函数学习笔记(八)模数转换模块(ADC12)
- CC254x--BLE
- Linux系统下.ko文件是什么文件?.so文件是什么文件?
- 枚举windows进程
- 解决列表某项文字过度过多 需要自适应撑开高度展示 其他项目按照行高居中
- 不带缓存的I/O和标准(带缓存的)I/O
- React开发(102):别写立即执行函数