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

江西网站建设找哪家新浪博客

江西网站建设找哪家,新浪博客,宜宾公司做网站,手机网站方案> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:了解什么是模板,并且能熟练运用函数模…

> 作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等
> 座右铭:松树千年终是朽,槿花一日自为荣。

> 目标:了解什么是模板,并且能熟练运用函数模板和类模板

> 毒鸡汤:对别人要求松一点,就不会总失望;对自己要求严一点,就不会总沮丧。
> 望小伙伴们点赞👍收藏✨加关注哟💕💕 

🌟前言

        想必大家都遇到过这样的问题吧,当你要调用一个相加的函数,而你的数据有整形,浮点型,只能实现两个函数来满足要求,这样实现的话,代码过于冗余。简单来说太烦了,用起来太不爽,调用一个函数,实现一个函数。在C嘎嘎里就有了模板这个东东,针不戳,今天给大家带来便是c++的模板,学完这个c++的代码真的爽,不信你看:

 ⭐主体

咱们就从三个方面讲解,函数模板,类模板,拓展。😘😘



🌙模板

        我们知道模板分为两大类,一个是函数模板,另一个则是类模板,咱们先看看这块肉长啥样,才方便我们吃。

下面就是一个简单的交换元素的模板

        如果在C++中,也能够存在这样一个模具,通过给这个模具中填充不同材料(类型),来获得不同材料的铸件(即生成具体类型的代码),那将会节省许多头发。巧的是前人早已将树栽好,我们只需在此乘凉。

🌙函数模板

💦概念:

函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生 函数的特定类型版本。
💦函数模板格式:
template<typename T1, typename T2,......,typename Tn>
返回值类型 函数名 ( 参数列表 ){}

template<typename T>
void Swap( T& left,  T& right) 
{T temp = left;left = right;right = temp; 
}

注意: typename 是 用来定义模板参数 关键字 , 也可以使用 class( 切记:不能使用 struct 代替class)

既然在c++我们可以使用模板,那模板在底层是如何实现的捏🙊🙊🙊

        函数模板是一个蓝图,它本身并不是函数,是编译器用使用方式产生特定具体类型函数的模具。 所以其实模板就是将本来应该我们做的重复的事情交给了编译器。所以说苦了编译器,开心了程序员。👻👻

        简单说就是本来我们应该多去写的Swap的重复工作去给编译器做了,咱们看看编译器下是如何实现的?

        在编译器编译阶段 ,对于模板函数的使用, 编译器需要根据传入的实参类型来推演生成对应类型 的函数 以供调用。比如: 当用 double 类型使用函数模板时,编译器通过对实参类型的推演,将 T 确定为 double 类型,然后产生一份专门处理 double 类型的代码 ,对于字符类型也是如此。

💫函数模板的实例化

用不同类型的参数使用函数模板时 ,称为函数模板的实例化 。模板参数实例化分为: 隐式实例化 和显式实例化 。
1. 隐式实例化:让编译器根据实参推演模板参数的实际类型
2. 显式实例化:在函数名后的 <> 中指定模板参数的实际类型

如果类型不匹配,编译器会尝试进行隐式类型转换,如果无法转换成功编译器将会报错。

💫模板参数的匹配原则

1. 一个非模板函数可以和一个同名的函数模板同时存在,而且该函数模板还可以被实例化为这 个非模板函数
就比如一个模板的Add和一个自己实现的Add可以一起存在然后:

  1. void Test ()
  2. {
  3.       Add ( 1 , 2 );              // 与非模板函数匹配,编译器不需要特化
  4.       Add < int > ( 1 , 2 );   // 调用编译器特化的 Add 版本
  5. }

2. 对于非模板函数和同名函数模板,如果其他条件都相同,在调动时会优先调用非模板函数而不会从该模板产生出一个实例。如果模板可以产生一个具有更好匹配的函数, 那么将选择模板。简单说会先找自己实现的有没有,没有就去看模板能不能实例化一个。

模板函数不允许自动类型转换,但普通函数可以进行自动类型转换

🌙类模板

类模板格式:

  1. template<class T1, class T2, ..., class Tn>
  2. class 类模板名
  3. {
  4.     // 类内成员定义
  5. };

这里就习惯用上class,上面函数模板是typename。

💫类模板的实例化 

        类模板实例化与函数模板实例化不同, 类模板实例化需要在类模板名字后跟 <> ,然后将实例化的 类型放在 <> 中即可,类模板名字不是真正的类,而实例化的结果才是真正的类 。 

 🌟结束语

       今天内容就到这里啦,时间过得很快,大家沉下心来好好学习,会有一定的收获的,大家多多坚持,嘻嘻,成功路上注定孤独,因为坚持的人不多。那请大家举起自己的小说手给博主一键三连,有你们的支持是我最大的动力💞💞💞,回见。

http://www.zhongyajixie.com/news/32654.html

相关文章:

  • 对于网站反爬虫如何做上海seo排名
  • 做数据分析好看的网站网络营销服务有哪些
  • 杭州湾新区开发建设公司网站百度新闻发布
  • 湖北网站建设优化深圳sem竞价托管
  • 贵阳网站开发工程师招聘网网络营销推广专家
  • 网站返回首页怎么做手机百度下载安装
  • 网页设计制作说明泰州seo推广
  • 建设网站哪家比较好搜索引擎优化的方法与技巧
  • wordpress模板结构夫唯seo视频教程
  • 外贸网网站建设如何在手机上开自己的网站
  • 淘宝搜券的网站怎么做域名怎么查
  • 德阳网站制作app开发公司有哪些
  • 想开个网站做外贸怎么做网站很卡如何优化
  • 垂直门户网站建设seo自动排名软件
  • 可以做软文推广的网站百度关键词查询工具免费
  • 网页图片加载失败北海seo快速排名
  • 做动态网站的用工具自媒体营销模式有哪些
  • 网站后台操作规范seo教学网seo
  • 成都企业品牌网站建设百度客服电话24小时
  • app营销策略模板seo专业优化公司
  • 安吉做网站百度快照官网登录
  • 网站开发免责声明推广网站
  • 莫企业网站建设方案梁水才seo优化专家
  • 黄山旅游景点seo免费推广
  • 织梦网站栏目管理广告买卖网
  • 孵化器网站建设河北网站建设推广
  • 网站建设一条龙磁力猫最佳搜索引擎入口
  • 阿里巴巴吧网站建设网站的seo
  • 建网站需要什么语言百度大数据官网
  • 域名交易网站源代码下载武汉竞价托管公司