Conversion Function 转换函数

你现在设计一个对象 class A,它可不可以被转为另外一种类型,这就是一种转换。或者是,另外一种类型可不可以转为A。一个是转出去,一个是转进来,这两个方向,我们都要谈。

现在首先谈的是转出去:

C++面向对象高级编程(下) 第一周

 

1、转化函数不可以有参数。转换类型而已,那有什么参数可言。

2、转化函数没有返回类型,返回类型就是operator后面的double。他也没有参数。

3、这种转化函数通常会加上const,因为并没有改变值,如上图黄色的那块函数。不写也不会报错,但是以后的情况有可能会出错。

4、转换函数可以写任何一个type都可以,不一定是基本类型,只要编译器认得就可以。

5、对于上面的调用(C++面向对象高级编程(下) 第一周),编译器会先去找一个有没有“+”重载,重载函数的两个参数里面一个是int型,一个是fraction类型。编译器没找到,所以就看看有没有转换函数,把f转成double型,于是就找到了上图中黄色的函数。

 

任何一个class,只要你认为合理,你都可以写很多个转换函数。

 

未完待续 2018.11.24

 

 

 

 

 

 

 

Conversion Function 转换函数

你现在设计一个对象 class A,它可不可以被转为另外一种类型,这就是一种转换。或者是,另外一种类型可不可以转为A。一个是转出去,一个是转进来,这两个方向,我们都要谈。

现在首先谈的是转出去:

C++面向对象高级编程(下) 第一周

 

1、转化函数不可以有参数。转换类型而已,那有什么参数可言。

2、转化函数没有返回类型,返回类型就是operator后面的double。他也没有参数。

3、这种转化函数通常会加上const,因为并没有改变值,如上图黄色的那块函数。不写也不会报错,但是以后的情况有可能会出错。

4、转换函数可以写任何一个type都可以,不一定是基本类型,只要编译器认得就可以。

5、对于上面的调用(C++面向对象高级编程(下) 第一周),编译器会先去找一个有没有“+”重载,重载函数的两个参数里面一个是int型,一个是fraction类型。编译器没找到,所以就看看有没有转换函数,把f转成double型,于是就找到了上图中黄色的函数。

 

任何一个class,只要你认为合理,你都可以写很多个转换函数。

 

未完待续 2018.11.24

 

 

 

 

 

 

 

相关文章:

  • 2021-10-26
  • 2021-12-02
  • 2022-02-13
  • 2021-12-04
  • 2021-08-05
  • 2022-12-23
猜你喜欢
  • 2021-07-13
  • 2021-09-05
  • 2021-05-21
  • 2022-12-23
  • 2021-10-15
  • 2022-12-23
  • 2022-02-25
相关资源
相似解决方案