关于成员模板的补充

本文是对之前的成员模板函数进行的补充说明


在模板中生成的类都是想对独立的,详细情况如下


就相当于做了这种骚操作,显然,传递进去的参数是错误的。。。。 这样怎么进行转换了。。 想要解决这个问题其实很简单,只要写一个成员模板就可以了。 如下


这样就可以完成转换。为什么了。如下:


假设函数模板是相对于类是独立的,那么在调用的时候就会出现上述情况,这样的话就可以完成转换但是会丢失精度,实际证明我的假设是成立的。。。。 函数模板确实是相对于类模板是相对独立的存在。这里也可以推导出模板的特性:

1.模板只是将你需要做成模板的代码傻不拉唧的Copy了一份。

2.模板之间都是相互独立的,就算模板函数是在模板类的内部,那么他也是独立于模板类的存在。


这个时候,如果我将data_设置为私有权限的时候,有趣的事情发生了。。。 


编译之后,直接报错。double类型无法访问私有成员。这样就更加的体现了模板生成的东西都是相对独立的存在,解决这个问题的方式,提供一个共有的接口,这样就可以解决访问权限的问题了。具体如下。


这里只需要写一个共有的接口,就可以解决这个问题,其实在STL当中,很多地方都是这样来解决类型转换的问题的,比如Stack当中大部分都是这样来做的。。。。

注意:成员模板也可以出现在我们的非模板类里面的。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值