本文是对之前的成员模板函数进行的补充说明
在模板中生成的类都是想对独立的,详细情况如下
就相当于做了这种骚操作,显然,传递进去的参数是错误的。。。。 这样怎么进行转换了。。 想要解决这个问题其实很简单,只要写一个成员模板就可以了。 如下
这样就可以完成转换。为什么了。如下:
假设函数模板是相对于类是独立的,那么在调用的时候就会出现上述情况,这样的话就可以完成转换但是会丢失精度,实际证明我的假设是成立的。。。。 函数模板确实是相对于类模板是相对独立的存在。这里也可以推导出模板的特性:
1.模板只是将你需要做成模板的代码傻不拉唧的Copy了一份。
2.模板之间都是相互独立的,就算模板函数是在模板类的内部,那么他也是独立于模板类的存在。
这个时候,如果我将data_设置为私有权限的时候,有趣的事情发生了。。。
编译之后,直接报错。double类型无法访问私有成员。这样就更加的体现了模板生成的东西都是相对独立的存在,解决这个问题的方式,提供一个共有的接口,这样就可以解决访问权限的问题了。具体如下。
这里只需要写一个共有的接口,就可以解决这个问题,其实在STL当中,很多地方都是这样来解决类型转换的问题的,比如Stack当中大部分都是这样来做的。。。。
注意:成员模板也可以出现在我们的非模板类里面的。