第二节运算符重载(教材P253-285) complex complex: operator+( complex c)/重载"“+” &complex temp temp. real-real+C real temp. imag=imag+cimag return temp; complex complex: operator-( complex c)/重载“” f complex temp temp. real-real-c real; temp.imag-imag-cimag return temp
第二节 运算符重载(教材①P253-285) complex complex ::operator+(complex c)//重载“+” {complex temp; temp.real=real+c.real; temp.imag=imag+c.imag; return temp; } complex complex ::operator-(complex c)//重载“-” { complex temp; temp.real=real-c.real; temp.imag=imag-c.imag; return temp; }
第〓节运算符载(敵材①P253285) complex complex:: operator*( complex c)/重载“ af complex temp; temp. real=real*c real-imag c imag; temp. imag=real*c imag+imag*.real; return temp; complex complex: operator/( complex c)/重载“ complex temp; double t: t=creal creal+c imag *cimag, temp. real=(real*c real+imag c imag)/t temp. imag=(c real*imag-real*cimag)/t; return temp;
第二节 运算符重载(教材①P253-285) complex complex ::operator*(complex c)//重载“*” { complex temp; temp.real=real*c.real-imag*c.imag; temp.imag=real*c.imag+imag*c.real; return temp; } complex complex ::operator/(complex c)//重载“/” {complex temp; double t; t=c.real*c.real+c.imag*c.imag; temp.real=(real*c.real+imag*c.imag)/t; temp.imag=(c.real*imag-real*c.imag)/t; return temp; }
第〓节运算符载(敵材①P253285) void complex: printO scout <<real; if (imag> 0)cout<<w+ if (imag!=0) cout <<imag<<"i"<<endl; void maino { complex al(23,4.6),A2(3.6,28),A3,A4,A5,A6; A3=A1+A2: A4=A1-A2 A5=A1*A2;A6=A1A2 Al. print(; A2. printo; A3 printO; A4 printO A5 printO; A6 printO
第二节 运算符重载(教材①P253-285) void complex::print() {cout <<real; if (imag>0) cout<<"+"; if (imag!=0) cout <<imag<<"i"<<endl; } void main() { complex A1(2.3,4.6),A2(3.6,2.8),A3,A4,A5,A6; A3=A1+A2;A4=A1-A2; A5=A1*A2;A6=A1/A2; A1.print();A2.print(); A3.print();A4.print(); A5.print();A6.print(); }
第〓节运算符载(敵材①P253285) >双目运算符重载后的使用方法: e k objl@obj2;- 隐式调用 ★objl. operatora(obj 12);显示调用 白单目运算符重载 →>单目运算符重载时没有参数 1、前置运算符重载
第二节 运算符重载(教材①P253-285) ➢双目运算符重载后的使用方法: obj1@obj2 ; —— 隐式调用 obj1.operator@(obj2) ; —— 显示调用 ㈢ 单目运算符重载 ➢单目运算符重载时没有参数。 1、前置运算符重载
第〓节运算符载(敵材①P253285) >例【53】单目运算符重载举例(前置+) #include <iostream.h> class coord d int x, y; public: coord(int i=0, int j=0); void printo; coord operator ++0; coord: coord (int i, int j) X-lV void coord: printo & cout <<x=<<<<y=<<y<<endl;
第二节 运算符重载(教材①P253-285) ➢例【5.3】单目运算符重载举例(前置++) #include <iostream.h> class coord { int x,y; public : coord(int i=0,int j=0); void print(); coord operator ++(); }; coord::coord(int i,int j) {x=i;y=j;} void coord::print() { cout << "x="<<x<<" y="<<y<<endl;}