C++中的操作符重载

在C++的类中, 我们可以对操作符重载, 何为操作符重载, 顾名思义, 即重写操作符的方法. 如, 在编译器中, 我们可以对两个整型进行加减乘除的运算, 但如果对两个类的对象进行加减乘除, 则会报错, 通过操作符重载, 我们可以实现对类对象的加减乘除以及其他各种操作, 最典型的如输入输出.
如图为一个复数类.
C++中的操作符重载

在它的声明部分, 有一个带两个参的构造函数, 以及对加减乘除的操作符重载, 以及前置后置加加减减的重载, 以及两个流操作符也就是输入输出的重载.
如图中所示, 对于需要对象的操作符也就是二元操作符我们通常声明为友元函数, 一元操作符则通常声明为成员函数, 这是因为在成员函数中是隐含类的this指针的, 也就是说通过this指针可以对当前对象进行操作, 而一元操作符操作的对象则是当前对象, 二元操作符则不是对当前对象的一个操作, 所以对其重载时通常将其声明为友元, 友元函数是没有this指针的.
如图中, 对加加减减声明了两次, 其中一个带一个int型参数, 这是一个伪参数, 也就是说, 通过在其参数列表中加一个int型参数, 让编译器知道当前自增或自减操作符是一个后置的. 而不带参的, 则是前置自增自减.
如图中, 对于流操作符, 我们使其返回值为iostream对象的引用, 参数列表中也传入引用, 这是因为如果不使用引用传递, 那么我们在调用流操作符进行输入输出时并不会影响到当前的iostream对象, 也就是说会形成无效的操作.