一个关于C++类和运算符重载的问题,具体的题目看问题补充

2025-03-09 08:52:22
推荐回答(2个)
回答1:

>>和<<是复数的移位运算?
#include
using namespace std;
class complex
{
public:
complex(double r=0.0,double i=0.0){real=r;imag=i;}
complex operator + (complex c2);
complex operator - (complex c2);
complex operator * (complex c2);
complex operator >> (complex c2);
complex operator << (complex c2);
bool operator == (complex c2);
void display();
private:
double real;
double imag;
};

complex complex:: operator + (complex c2)
{return complex(real+c2.real,imag+c2.imag);}
complex complex:: operator - (complex c2)
{return complex(real-c2.real,imag-c2.imag);}
complex complex:: operator * (complex c2)
{return complex(real*c2.real-imag*c2.imag,real*c2.imag+imag*c2.real);}
///////////不知道怎么移位运算,自己加吧
/*complex complex:: operator >> (complex c2)
{;}
complex complex:: operator << (complex c2)
{;}*/
bool complex:: operator == (complex c2)
{if((real==c2.real)&&(imag==c2.imag))return true;
else return false;}
void complex::display(){
cout<}
int main(){
complex c1(5,6),c2(3,4),c3;
cout<<"c1=";c1.display();
cout<cout<<"c2=";c2.display();
cout<c3=c1-c2;
cout<<"c3=c1-c2=";c3.display();
cout<c3=c1*c2;
cout<<"c3=c1*c2=";c3.display();
cout<c3=c1+c2;
cout<<"c3=c1+c2=";c3.display();
cout<cout<<"c2==c1 ="<<(c2==c1);
cout<return 0;
}

回答2:

不是这个东西,那个是对复数和“+”运算符重载。