Conversion Function 转换函数
你现在设计一个对象 class A,它可不可以被转为另外一种类型,这就是一种转换。或者是,另外一种类型可不可以转为A。一个是转出去,一个是转进来,这两个方向,我们都要谈。
现在首先谈的是转出去:
1、转化函数不可以有参数。转换类型而已,那有什么参数可言。
2、转化函数没有返回类型,返回类型就是operator后面的double。他也没有参数。
3、这种转化函数通常会加上const,因为并没有改变值,如上图黄色的那块函数。不写也不会报错,但是以后的情况有可能会出错。
4、转换函数可以写任何一个type都可以,不一定是基本类型,只要编译器认得就可以。
5、对于上面的调用(),编译器会先去找一个有没有“+”重载,重载函数的两个参数里面一个是int型,一个是fraction类型。编译器没找到,所以就看看有没有转换函数,把f转成double型,于是就找到了上图中黄色的函数。
任何一个class,只要你认为合理,你都可以写很多个转换函数。
未完待续 2018.11.24