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

做网站编辑需要看什么书上海seo培训中心

做网站编辑需要看什么书,上海seo培训中心,怎么看一个网站用什么平台做的,福州设计网站文章目录 模板的作用模板的原理模板分为两大类——函数模板和类模板函数模板语法函数模板实例化模板函数的方式模板函数的类型转换既有函数模板又有已经实现的函数,会优先调用哪一个? 类模板语法模板类实例化对象模板类的模板参数可以有缺省值类模板中的…

文章目录

  • 模板的作用
  • 模板的原理
  • 模板分为两大类——函数模板和类模板
    • 函数模板
      • 语法
      • 函数模板实例化模板函数的方式
      • 模板函数的类型转换
      • 既有函数模板又有已经实现的函数,会优先调用哪一个?
    • 类模板
      • 语法
      • 模板类实例化对象
      • 模板类的模板参数可以有缺省值
      • 类模板中的成员函数全函数模板
      • 模板类中的成员函数声明和定义分离

模板的作用

模板的主要作用是实现泛型编程,泛型编程即编写与类型无关的通用代码,是代码复用的一种手段
模板就是泛型编程的基础。


我们经常使用的交换函数就可以使用泛型编程来进行编写,这样可以大大减少重复的代码

一般编写方式
在这里插入图片描述
可以发现上图的三个函数除了参数类型不一样,其他的都是一样的重复的代码太多了,这个时候就可以考虑使用模板进行编写了


模板编写方式:
在这里插入图片描述
此时编译器就可以根据类型的不同实例化出不同的函数


模板的原理

模板就如其名字一样,就像一个冰棍模具,把不同的果汁(类型)放进去就可以得到不同口味的冰棍,但是这些冰棍就只有口味不同,外形(代码逻辑)都是一样的。

如下图
在这里插入图片描述
编译器编译阶段,对于模板的使用,编译器会根据传入的实参类型来推演生成对应类型的函数以供
调用。


模板分为两大类——函数模板和类模板

函数模板

语法

template < typename/class T(自定义类型名), typename/class T,………>
函数模板定义


在这里插入图片描述


函数模板实例化模板函数的方式

  1. 只传实参(隐式调用)[让编译器自己根据实参类型推]
    在这里插入图片描述

  2. 既传实参又传类型(显示调用)[即自己指定模板使用的类型]
    在这里插入图片描述

必须显式传类型的场景

即仅靠实参推演出的类型不够


在这里插入图片描述
此时就必须显式传类型
在这里插入图片描述


当模板类型个数和实参个数不同时,可能会类型不明


在这里插入图片描述
此时有3个解决方法

  1. 对实参进行强制类型转换
    即 把函数调用方式改为: Add(a,(int)c)或者 Add((char) a,c),让参数类型统一。

  2. 显式传递模板参数
    即 把函数调用方式改为Add<int>(a,c)或者Add<char>(a,c),让编译器知道模板参数是什么,先实例化出对应的函数之后,再传入实参,此时实参就会自动进行隐式类型转换

  3. 增加模板参数个数到于实参个数匹配

    在这里插入图片描述


模板函数的类型转换

使用实参类型推导模板参数时(隐式调用),不能隐式类型转换

显式调用时可以隐式类型转换


既有函数模板又有已经实现的函数,会优先调用哪一个?

例如下图这种情况:
在这里插入图片描述

此时分3种情况

  1. 如果调用普通函数不会发生类型转换,那就调用已经存在的普通函数
    在这里插入图片描述

  2. 如果调用普通函数发生类型转换,而调用函数模板实例化的模板函数不会发生类型转换时,就调用模板函数
    在这里插入图片描述

  3. 如果都发生类型转换,就调用已经存在的普通函数


类模板

语法

template < typename/class T(自定义类型名), typename/class T,………>
模板类的定义


在这里插入图片描述


模板类实例化对象

模板类实例化对象时只能显式传类型

此时<>加在类名后面

[<>必须要有,哪怕<>中不写类型]


在这里插入图片描述
在这里插入图片描述


模板类的模板参数可以有缺省值


在这里插入图片描述

类模板中的成员函数全函数模板

为什么?

因为类模板中的成员变量的类型是不确定的,成员函数是否使用了类模板的模板类型不确定

所以他没有办法像普通类的成员函数一样,在编译时就创建好了

而是跟函数模板一样需要编译器在运行过程中推演


模板类中的成员函数声明和定义分离

不能简单地直接类名+::

而是

模板类型声明+类中的成员函数的定义[注意此时类名后面还是要加<类型>,因为这样才是一个完整的类类型],这样类实例化对象的时候就可以推导出对应的成员函数的类型
在这里插入图片描述

由于模板类不完整,所以不能直接用它去限定作用域

即在类外实现成员函数等用::区限定时,不能直接限定,要先指定类型

http://www.hengruixuexiao.com/news/54709.html

相关文章:

  • 做恶搞图片的网站拼多多seo搜索优化
  • 做关于什么内容的网站小说网站排名
  • 怎么样做网站才可以加重权重网络销售怎么找客源
  • 天津做网站公司引流推广接单
  • 青岛网站建设在哪网站建设服务公司
  • 成都微信网站制作晚上国网app
  • 运城网站开发公司如何建一个自己的网站
  • wordpress表单数据前台显示长沙seo服务哪个公司好
  • vs做网站开发吗中国突然宣布一重磅消息
  • 贵阳做网站kuhugz百度推广联盟
  • 手机网站怎么做的360手机优化大师安卓版
  • 网页版本传奇吉林seo技术交流
  • 建设政府门户网站的背景软文代写平台有哪些
  • 外销网站网络电商推广方案
  • 湖南星大建设集团有限公司网站专业seo站长工具全面查询网站
  • dedecms做网站注意事项廊坊seo排名收费
  • 海南网站建设报价方案长沙网站seo排名
  • 怎么做网站自动采集数据库种子库
  • 成都网站建设服务密需湖南岚鸿案例网络营销专业可以干什么工作
  • 大神自己做的下载音乐的网站做企业网站建设的公司
  • 大连日文网站设计职业培训机构排名前十
  • 地税网站建设管理百度知道提问
  • 网站页面的滑动怎么做的五行seo博客
  • 电子商务网站建设怎么做win10优化大师好用吗
  • 郑东新区网站开发微信scrm
  • 个人博客网站建设方案seo搜索引擎优化费用
  • 天津做网站优化哪家好最火的网络销售平台
  • 网站源码地址怎么看软文模板300字
  • 网站建设和营销搜索引擎营销特点是什么
  • 做网站测试怎么样个人接外包项目平台