友元运算符重载函数
运算符重载函数除了可以作为类的成员函数外,还可以是非成员函数。在有关的类中声明它为友元函数。
下例是将运算符+重载为使用于复数加法,重载函数不作为成员函数,而放在类外,作为Complex类的友元函数。
#include <iostream> using namespace std; class Complex { public: Complex(){real=0;imag=0;} Complex(double r,double i){real=r;imag=i;} friend Complex operator+(Complex&c1,Complex&c2); void display(); private: double real; double imag; }; Complex operator+(Complex&c1,Complex&c2) { return Complex(c1.real+c2.real,c1.imag+c2.imag); } void Complex::display() { cout<<"("<<real<<","<<imag<<")"<<endl; } int main() { Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; c3.display(); }
浙公网安备 33010602011771号