运算符重载

Posted 布丁乌托邦颖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运算符重载相关的知识,希望对你有一定的参考价值。

运算符的重载实际上是函数的重载,在实际过程中,首先把指定的运算表达式转化为对运算符函数的调用,将运算符对象转化为运算符函数的实参,然后根据实参的类型确定需要调用的函数,这个过程在编译的过程中完成。

不能重载的运算符

“.” 类属关系运算符

“.*”成员指针运算符

“::”作用域分辨符

“?:”三目运算符

两种运算符重载方式:

1.重载为类的非静态成员函数

2.重载为非成员函数

区别:运算符的重载形式各有千秋。成员函数的重载方式更加方便,但有时处于以下原因,需要使用非成员函数的重载方式

1.要重载的操作符的第一个操作数不是可以更改的类型

例如:Complex是一个复数类

ostream & operator << (ostream &out, const Complex &c)

{

  out << "(c.real <<  "," << c.img <<")";

      return out;//用来支持连续输出

}

2.以非成员函数的形式重载,支持更加灵活的类型转换。

 

以上是关于运算符重载的主要内容,如果未能解决你的问题,请参考以下文章

运算符重载1

什么运算符一定要重载友元函数,什么时候一定要重载为成员函数?

利用运算符重载实现Date类

C++运算符重载

运算符重载

运算符重载与const对象