例8.1 算 将“+”、“-”运算重载为复数类 将的成员函数 重 载°规则 实部和虚部分别相加减。 操作数: 两个操作数都是复数类的对象 休息
前一页 休息 11 运 算 符 重 载 例 8.1 将“+”、“-”运算重载为复数类 的成员函数。 ⚫ 规则: – 实部和虚部分别相加减。 ⚫ 操作数: – 两个操作数都是复数类的对象
include<iostream. h> class complex∥复数类声明 public:∥外部接口 complex double r=0.0, double i=0. Oreal=r; imag=i,] ∥构造函数 complex operator+( complex c2);+重载为成员函数 complex operator-( complex c2):l-重载为成员函数 void display(;∥输出复数 private:∥私有数据成员 double real:;∥复数实部 double imag;∥复数虚部 ;
#include<iostream.h> class complex //复数类声明 { public: //外部接口 complex(double r=0.0,double i=0.0){real=r;imag=i;} //构造函数 complex operator + (complex c2); //+重载为成员函数 complex operator - (complex c2); //-重载为成员函数 void display(); //输出复数 private: //私有数据成员 double real; //复数实部 double imag; //复数虚部 };
complex complex operator+ complex c2)∥重载函数实现 complex C) c real=c2. real+real Cimag=c2 imag+imag return complex(c real, C imag);
complex complex:: operator +(complex c2) //重载函数实现 { complex c; c.real=c2.real+real; c.imag=c2.imag+imag; return complex(c.real,c.imag); }
complex complex operator- complex c2)∥重载函数实现 complex C, c. realreal-C2real; Cimag=- C2 imag return complex(c real, C imag)
complex complex:: operator -(complex c2) //重载函数实现 { complex c; c.real=real-c2.real; c.imag=imag-c2.imag; return complex(c.real,c.imag); }
void complex. display( cout≤<"("≤≤rea<s","<<imag≤s")"<≤endl;} void main()∥主函数 I complex c1(54),c2(2,10),c3;声明复数类的对象 cout<< cl=";c1display (; cout<< c2=,c2display 0; c3=c1-c2;∥使用重载运算符完成复数减法 cout<< C3=c1-C2 C3 display (; c3=c1+c2;∥使用重载运算符完成复数加法 cout<<"c3=C1+C2=", C3 display o;
void complex::display() { cout<<"("<<real<<","<<imag<<")"<<endl; } void main() //主函数 { complex c1(5,4),c2(2,10),c3; //声明复数类的对象 cout<<"c1="; c1.display(); cout<<"c2="; c2.display(); c3=c1-c2; //使用重载运算符完成复数减法 cout<<"c3=c1-c2="; c3.display(); c3=c1+c2; //使用重载运算符完成复数加法 cout<<"c3=c1+c2="; c3.display(); }