运算符重载

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

不能重载的运算符指针

“.” 类属关系运算符对象

“.*”成员指针运算符作用域

“::”做用域分辨符编译

“?:”三目运算符stream

两种运算符重载方式:im

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

2.重载为非成员函数类型转换

区别:运算符的重载形式各有千秋。成员函数的重载方式更加方便,但有时处于如下缘由,须要使用非成员函数的重载方式co

1.要重载的操做符的第一个操做数不是能够更改的类型

例如:Complex是一个复数类

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

{

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

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

}

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

相关文章
相关标签/搜索