设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

C++重载 强制类别转换运算符

发布时间:2022-07-01 12:54 所属栏目:51 来源:互联网
导读:在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。 类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这个对对象进行强制类型转换的表达式就等价于
  在 C++ 中,类型的名字(包括类的名字)本身也是一种运算符,即类型强制转换运算符。
 
  类型强制转换运算符是单目运算符,也可以被重载,但只能重载为成员函数,不能重载为全局函数。经过适当重载后,(类型名)对象这个对对象进行强制类型转换的表达式就等价于对象.operator 类型名(),即变成对运算符函数的调用。
 
  下面的程序对 double 类型强制转换运算符进行了重载。
  #include <iostream>
  using namespace std;
  class Complex

  程序的输出结果是:
  1.2
  3.2
 
  第 8 行对 double 运算符进行了重载。重载强制类型转换运算符时,不需要指定返回值类型,因为返回值类型是确定的,就是运算符本身代表的类型,在这里就是 double。
 
  重载后的效果是,第 13 行的(double)c等价于c.operator double()。
 
  有了对 double 运算符的重载,在本该出现 double 类型的变量或常量的地方,如果出现了一个 Complex 类型的对象,那么该对象的 operator double 成员函数就会被调用,然后取其返回值使用。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读