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

关于成员模板的补充

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

关于成员模板的补充

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

关于成员模板的补充

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

关于成员模板的补充

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

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

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


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

关于成员模板的补充

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

关于成员模板的补充

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

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




相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-09-23
  • 2021-07-14
  • 2021-08-10
  • 2021-10-03
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-05
  • 2022-12-23
  • 2021-10-23
  • 2021-04-14
  • 2021-08-11
  • 2021-07-18
  • 2021-06-17
相关资源
相似解决方案