当前位置:首页 » 《休闲阅读》 » 正文

【C++打怪之路Lv12】-- 模板进阶

26 人参与  2024年10月27日 19:20  分类 : 《休闲阅读》  评论

点击全文阅读


#1024程序员节|征文#

? 个人主页:白子寰
? 分类专栏:重生之我在学Linux,C++打怪之路,python从入门到精通,数据结构,C语言,C语言题集? 希望得到您的订阅和支持~
? 坚持创作博文(平均质量分82+),分享更多关于深度学习、C/C++,python领域的优质内容!(希望得到您的关注~)

目录

 模板参数

模板的特化

概念

函数模板的特化 

 使用场景

注意事项

类模板特化

全特化

偏特化

模板分离编译


 模板参数



模板的特化

概念

模板特化是为模板提供一个特殊版本,这个版本仅适用于特定的模板参数。

函数模板的特化 

例如,一个通用的模板函数可能有一个专门为int类型定制的特化版本 

template<class T>void fun(T t){cout << "通用版本" << endl;}template<>void fun<int>(int t){cout << "特化版本" << endl;}int main(){fun(1);// 特化版本fun<int>(6);// 特化版本fun(6.8);// 通用版本return 0;}

 使用场景

1、当某个特定类型需要不同的处理逻辑时。
2、优化:为特定类型提供更高效的算法


注意事项

1、特化版本不能独立于原始模板存在。
2、不能有多个相同的特化版本



类模板特化

全特化

1、定义:全特化是指为类模板的所有模板参数提供具体的类型

2、为什么要使用全特化:当需要对某个特定类型组合提供专门的实现,以优化性能或处理特定逻辑时,使用全特化


偏特化

1、定义:偏特化是指为类模板的部分模板参数提供具体的类型

2、为什么要用偏特化:当只需要对模板参数的某部分进行特化,而不是全部参数时,使用偏特化



模板分离编译

在分离编译模式下,一个程序由多个源文件分别编译成目标文件后再链接为可执行文件。

而对于模板,它可以在同一文件中实现声明和定义分离,但如果将模板的声明和定义放在不同文件中,会由于模板的特殊实现机制在链接阶段出现链接错误。

这是因为模板的实例化需要在使用模板的地方进行,而不同文件编译时可能无法正确识别和处理模板的实例化需求

在 C++ 程序运行过程中,通常经历预处理、编译、汇编和链接等步骤。

分离编译时,普通函数在编译阶段会生成地址和汇编代码,链接阶段可通过该地址调用函数。

然而对于模板,在未实例化之前,编译器不会生成具体函数及对应的地址。所以在链接阶段,若模板的声明和定义分别在不同文件,由于找不到具体函数地址就会发生链接错误。

因此,若要进行模板的分离编译,必须将模板的声明和定义放在同一个文件中,以确保在需要实例化时能够正确生成函数并被链接器正确处理 




***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。

等等等等一下,分享最近喜欢的一句话:

“要么被爱唤醒,要么被痛唤醒。”。

我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!! 
好了划走吧。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/178715.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 代管班费小荷包三年后,青梅说我吞了180万(乔宇宁雨)全书免费_(乔宇宁雨)代管班费小荷包三年后,青梅说我吞了180万后续(乔宇宁雨)
  • 男友一家要我守规矩后,却悔疯了苏然完本_男友一家要我守规矩后,却悔疯了(苏然)
  • 重生打脸渣男毒闺蜜(陈亮张倩)全书免费_(陈亮张倩)重生打脸渣男毒闺蜜后续(陈亮张倩)
  • 全文和宗门断情绝义后,小可怜被大佬团宠了创作编写(江寻柳青青)列表_全文和宗门断情绝义后,小可怜被大佬团宠了创作编写
  • 和宗门断情绝义后,小可怜被大佬团宠了创作编写江寻柳青青完本_和宗门断情绝义后,小可怜被大佬团宠了创作编写(江寻柳青青)
  • 向导坐牢后,结果把狱友驯成忠犬桑虞陆擢完本_向导坐牢后,结果把狱友驯成忠犬(桑虞陆擢)
  • 姑姑爱开玩笑,藏我的录取通知书夏知妤_姑姑爱开玩笑,藏我的录取通知书夏知妤
  • 我嫁给了我不喜欢的公子(慕朝林又),我嫁给了我不喜欢的公子
  • 当男主领养了东北幼崽后(沈星眠周景行)全书免费_(沈星眠周景行)当男主领养了东北幼崽后后续(沈星眠周景行)
  • 好看的老公和我资助的女大登记夫妻开房简冰巧周临川_老公和我资助的女大登记夫妻开房简冰巧周临川
  • 全书免费凌嫣穆巡舟_凌嫣穆巡舟全书免费
  • 撕毁替身契约,溺列表_撕毁替身契约,溺(陈默,向晴,林国栋)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1