关于泛型编程时遇到的bug

项目场景1:定义构造函数时不可,如果是写类外构造函数,不能在类内使用初始化列表

这是错误示范,正确的是将类内的构造函数声明的初始化列表删除。


原因分析:

系统告诉你,他希望在末尾有个"{}",意思是他希望有个函数,但这里是声明,说明初始化列表只能在函数实现的位置使用。


项目场景2:泛型编程的函数参数问题

这是错误示范,圈起来的是问题所在


原因分析 :

 错误提示说:没有匹配的函数调用,说明两种情况:第一种,没写这个函数实现,就在主函数调用这个函数,我们这里写了说明不是这个问题;第二种,所传参数和函数所需参数不匹配,函数重载里也找不到这样函数,故报错。所以我们是第二种。这样就发现,哪怕是泛型编程,他给的T类型在参数传入时也只能传一种参数,不同的类型依然不行,用书面的语言说就是:函数模板不允许隐式类型转换,调用时类型必须严格匹配。


项目场景三

错误示范,第二个去掉<T>后会报错

 


原因分析

 错误信息告诉你 Class SeqList 不使用模板参数,如果在不加模板参数名列表,就无法证明这是个属于泛型类的类外函数,就算函数中不使用模板参数,也要加。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值