#include<iostream>usingnamespace std;classcomplex{double re, im;public:complex(double r,double i):re{r},im{i}{}complex(double r):re{r},im{0}{}complex():re{0},im{0}{}doublereal()const{return re;}voidreal(double r){ re = r;}doubleimag()const{return im;}voidimag(double i){ im = i;}
complex&operator+=(complex z){ re += z.re; im += z.im;return*this;}
complex&operator-=(complex z){ re -= z.re; im -= z.im;return*this;}};//操作符与类的定义分离开来
complex operator+(complex a, complex b){return a += b;}
complex operator-(complex a, complex b){return a -= b;}
complex operator-(complex a){return{-a.real(),-a.imag()};}booloperator==(complex a, complex b){return a.real()== b.real()&&a.imag()== b.imag();}booloperator!=(complex a, complex b){return!(a == b);}intmain(){
complex a{2.3};
complex b{1,2.2};if(b != a)
b += a;
cout << b.real();}