C++模板进阶

本文详细介绍了C++中的函数参数与模板参数的区别,探讨了模板的按需实例化、函数模板特化和类模板特化,以及模板分离编译的重要性,通过STL的例子来说明这些概念的实际应用。
摘要由CSDN通过智能技术生成


1.函数参数与模板参数

在这里插入图片描述

上面的array是我们自己命名空间下的array,并不是库中的array,说到这里了,就介绍一下库中的array吧:

在这里插入图片描述

1.1 模板的按需实例化

这也就是上面所说的我们自己命名空间下的array!
因为模板本质上是一个半成品,其在编译时传参,不像函数参数一样运行时传参。所以就会导致可能有错误也检查不出来,具体如下:
在这里插入图片描述

1.2 模板的特化

模板特化中分为函数模板特化类模板特化

1.2.1 函数模板特化

在这里插入图片描述

1.2.2 类模板特化

在这里插入图片描述

1.3 模板分离编译

这个部分就是前面为什么写STL(vector、list等)的时候,只写在一个.h文件中
模板不支持定义和声明分离在两个文件!
所以也就是说,知识具有滞后性。学到后面才知道前面为啥要那么做。
前面还不知道这个的时候,写STL的底层可把我折磨坏了!
在这里插入图片描述

也许这个例子不是那么直观,那么来看一个更加简单直观的:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chris·Bosh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值