首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

努力学习,完成第三章的学习

种树的最佳时间是十年前,其次是现在。

关注我一起努力学习吧!

学Bug=学霸哥(学霸中的一个Bug)

今天学习任务是完成第三章剩下的内容“函数模板”,内容并不多,也不难理解,但编译过程中出现了错误,有点麻烦。

1、引入函数模板:

将函数重载中逻辑功能完全一样的函数,区别仅仅是处理数据类型不同,把它们的操作可以抽象化,书中还是以比较大小max函数为例;

②一般使用T作为标识符来标识类型参数,在调用函数模板时,模板的参数是由函数的参数推断出来的;

③例3-14演示函数模板程序,首次编译就出现了错误如下图1所示,调用重载有歧义,可以是冲突吧,改了max的函数名就可以编译成功,具体原因还不清楚,例3-17也出现了同样的错误;

④例3-15、3-16演示了使用函数重载及函数模板的对比,很明显函数模板的功能强,直接简化了程序,得到的是同样的结果,如下图3-4所示。

2、函数模板的参数:

①模板参数用尖括号显式规则表示,C++专门定义了一个仅仅用在模板中的关键字typename代替class,例3-17如下图5所示;

②对于字符串“ABC”和“ABD”的大小比较,两个例题中的答案都是ABC>ABD,与书中的结果相反,查了一下还不知道什么情况?

图1.编译错误

图2.例3-14

图3.例3-15

图4.例3-16

图5.例3-17

加油!

坚持!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180304G002WT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券