运算符重载函数作为类成员函数和友元函数
运算符重载函数既可以做为类成员函数也可以重载为友元函数,但使用定义方法和使用上是由较大差别的。
运算符重载函数作为类成员函数首先看一个运算符重载函数作为类成员函数的示例代码:
定义Complex为复数类,重载运算符"+"实现复数的相加。
程序1.1
我们单独拿出运算符成员函数体来分析:
Complex operator+(Complex &c1,Complex &c2)//定义重载运算符"+"的函数{Complex c3;c3.real=c1.real+c2.real;c3.imag=c1.imag+c2.imag;return c3;}该函数是类Complex的友元函数,也就是说它不是Complex类的成员函数,Complex类对象不能调用该函数。c3=c1+c2;被解释为c3=operator + (c1,c2);也是就说相加的两个类对象都作为operator +()的参数。