蓝鸥iOS培训讲师推荐:对于C来说,其实C与C++的难度应该差不多少,都不是特别难,如果有基础的话,那么学起来就更容易了。

C++为大家提供了函数模板,那么究竟函数模板是怎么回事呢?下面来了解一下!

事实上所谓的函数模板就是建立一个通用函数,其函数类型和形参类型不会具体指定,用一个虚拟的类型来代表。凡是函数体相同的函数都可以用这个模板来代替,不用定义多个函数,只需要在模板中定义一次就可以了。那么在调用函数的时候系统会根据实参的类型来取代模板中的虚拟类型,为了实现不一样的函数的的功能。为了方便大家理解,下面给出一个例子,能够让大家更好的理解。

举例:通过函数模板来实现(求两个整数或3个整数中的最大数,如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数)

数据不用cin语句输入,而在变量定义时初始化,程序第3~8行是定义模板。

定义函数模板的一般形式为:

template<typenameT>或template<classT>

通用函数定义通用函数定义

在建立函数模板时,只要将下面程序中定义的第一个函数首部的int改为T就可以了,也就是用虚拟的类型名T代替具体的数据类型,在对程序进行编译时,遇到第13行调用函数max(i1,i2,i3),编译系统会将函数名max与模板max相匹配,将实参的类型取代了函数模板中的虚拟类型T,此时相当于已定义了一个函数:

类型参数可以不仅仅是一个,可以根据自己的需要确定个数,例如:

那么大家可以很清楚的看到,用函数模板要比函数重载更简单,更方便。不过需要注意的是它只适合在函数的参数个数一样而类型不一样的时候使用。那么要是参数的个数不一样的话,就不能选用函数模板。

转载于:https://blog.51cto.com/7838253/1317212

iOS开发篇——C++函数模板介绍相关推荐

  1. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)

    图像:  1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.  ...

  2. (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

  3. 最佳实践(2):iOS开发篇

    本文由 伯乐在线 - 戴仓薯 翻译,dopcn 校稿.未经许可,禁止转载! 英文出处:futurice.欢迎加入翻译组. 这份文档就像软件项目一样,如果我们不维护它就会逐渐腐坏.欢迎大家跟我们一起来维 ...

  4. iOS开发-常用第三方开源框架介绍(2)

    2019独角兽企业重金招聘Python工程师标准>>> Frank 自动化测试工具?  superdb 一个Debuger工具 用命令行调试..  iOS-Hierarchy-Vie ...

  5. iOS开发证书和Profile文件 介绍以及使用

    IOS开发环境,证书和授权文件是什么? 一.成员介绍 1.Certification(证书) 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种: 1)Developer Certificat ...

  6. iOS开发之多线程--多线程简单介绍

    一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过& ...

  7. iOS开发篇——OC 协议和代理设计模式介绍

    蓝鸥iOS培训讲师推荐:好久没和大家沟通了,没和大家沟通了,今天就和大家说说有关OC内容协议和代理设计模式.首先要讲的是协议 一.协议 OC中的协议和接口有些相似,协议中定义的方法,在类中实现.协议一 ...

  8. iOS开发篇——赋值语句介绍(C++)

    蓝鸥iOS培训讲师推荐:记得在哪好像说过有关C++赋值语句了,但是不记得是在哪了,没关系反正有时间,今天就为大家再整理一次. 赋值语句:由赋值表达式加上一个分号构成 1.C++的赋值语句具有其他高级语 ...

  9. IOS开发之----常用函数和常数--秀清

    介绍一下Objective-c常用的函数,常数变量 算术函数 [算术函数] 函数名 说明 int rand() 随机数生成. (例) srand(time(nil)); //随机数初期化 int va ...

  10. iOS开发篇(二)自定义评分星级条RatingBar

    在我们开发电商类的项目时,可能会遇到用户评价"打星"这样的需求,iOS上没有这个控件,因此这里需要我们自定义该控件 第一步: 写一个继承自UIView的RatingBar子控件 第 ...

最新文章

  1. dataframe,python,numpy 问题索引1
  2. SpringMVC开发过程中的中文乱码问题
  3. 007--C++动态内存(数组)
  4. VS2012 编译 boost1.53/ boost1.49
  5. java replaceall 大小写_Java replaceAll不区分大小写
  6. datagridview 设置选中行_Sublime Text 3最好的功能、插件和设置
  7. 弹出数组第一个元素 php,弹出第一个元素数组以在php codeigniter中插入批处理
  8. MySQL 阿里巴巴JAVA开发手册-MySQL相关
  9. 与体育行业有关的e–r图_国家体育产业统计分类
  10. JavaCV的摄像头实战之六:保存为mp4文件(有声音)
  11. Linux内核和传统Unix内核的比较
  12. bibtex引用参考文献排版格式
  13. 基于FPGA的遥控数字时钟设计
  14. Secret的三种形式
  15. QDialog添加最大化最小化按钮
  16. POJ 1076 Bowl 笔记
  17. 数字城市天津防汛应急平台用户痛点分析【软件测试与工程】
  18. python-pytorch hello world
  19. 2022-2028年中国PVC地板行业市场竞争态势及投资方向分析报告
  20. mysql threads create_MySql轻松入门系列——第一站 从源码角度轻松认识mysql整体框架图...

热门文章

  1. [置顶] java高级工程师-----struts的内部运行机制详解
  2. .NET实现中英文验证码
  3. 防护针对SQL Server数据库的SQL注入攻击
  4. C盘空间太小,建议删除如下文件以释放空间!
  5. Android Error: Program sh not found in PATH 解决方法
  6. IONIC2/3解决文本框获取焦点的问题
  7. HTML5form表单的相关知识总结
  8. Nginx笔记总结十一:Nginx重写规则指南
  9. 不要奢望.NET能够跨平台
  10. c#.net常用函数列表