c++面试题(c++和Python哪个好)

技术如何进行C++模板显式具体化的分析如何进行C++模板显式具体化的分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。模板函数虽然非常好用,但是也存在一些问

我相信很多没有经验的人对于如何分析C模板的显式具体化是无能为力的。为此,本文总结了问题产生的原因和解决方法,希望大家可以通过这篇文章来解决这个问题。

模板功能虽然很有用,但也存在一些问题。例如,有些操作并不适合所有类型。针对这种情况,C提供了一种解决方案,即为特定类型提供具体的模板定义。这里的具体性可以理解为类型的具体性。

我们来看一个C++ Primer当中的例子,假设现在我们有一个结构体叫做job:

structjob{

stringname

双倍工资;

intfloor

}可以作为一个整体赋给结构,所以前面的Swap函数同样适用于它。

templatetypenameT

空隙交换(Ta,Tb){ 0

ttemp=a;

a=b;

b=温度;

}但现在我们希望在交换结构时,只交换薪资和楼层字段,名称不变。因为我们要引入逻辑变化,所以直接调用Swap函数是不可行的。

当然我们可以不用函数模板,直接重载函数:

无效交换(joba,jobb){ 0

//swap是std的交换函数,在算法头文件中。

互换(a .薪水,b .薪水);

互换(a.floor,b . floor);

}因为C规定非函数模板的优先级高于函数模板,所以我们在作业结构上调用Swap函数时会优先考虑这一点。

除此之外,我们还可以提供一个具体化的模板函数:

templatevoitswapjob(joba,jobb){ 0

互换(a .薪水,b .薪水);

互换(a.floor,b . floor);

}这个函数的写法好像有点特别。我们在函数类型之前添加了模板,并在函数名称之后跟随作业。意味着这是一个功能模板的明确体现,也可以理解为为之前的功能模板提供了一个作业类型的版本。c规定显式模板函数比普通模板函数具有更高的优先级。

看完以上内容,你掌握了如何分析C模板的显式具体化了吗?如果您想学习更多技能或了解更多相关内容,请关注行业资讯频道,感谢您的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/151262.html

(0)

相关推荐

  • 哪些方面可以用到代理ip

    技术哪些方面可以用到代理ip这篇文章将为大家详细讲解有关哪些方面可以用到代理ip,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对于代理IP的需求也日益增长,高隐性代理IP

    攻略 2021年10月20日
  • 吉吉国王是什么梗,嘉吉公司的嘉吉优势是什么

    技术吉吉国王是什么梗,嘉吉公司的嘉吉优势是什么供应链管理 供应链管理概念的产生和发展与信息技术的应用密不可分吉吉国王是什么梗。可以说没有当今高速发展的信息技术,供应链管理就不可能实施。 加强物流 对于嘉吉公司来说,

    生活 2021年10月29日
  • 如何解决PHP xcache无法加载

    技术如何解决PHP xcache无法加载这篇文章主要讲解了“如何解决PHP xcache无法加载”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决PHP xcache

    攻略 2021年10月23日
  • hbase shell操作语句有哪些

    技术hbase shell操作语句有哪些这篇文章将为大家详细讲解有关hbase shell操作语句有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。hbase shell操作语句基本

    攻略 2021年12月9日
  • mybatis日常语法有哪些

    技术mybatis日常语法有哪些mybatis日常语法有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。mybatis中的#和$的区别? #方式能够很大程

    攻略 2021年10月20日
  • Oracle 12c R2版本 Application Containers的特性是什么

    技术Oracle 12c R2版本 Application Containers的特性是什么本篇文章给大家分享的是有关Oracle 12c R2版本 Application Containers的特性是什么,小编觉得挺实

    攻略 2021年11月12日