yazdıklarım aşağıda muhtemelen basit birşey ama çözemedim

#include <iostream>
using namespace std;

class myComplex
{
private:
int real;
int imaginary;

public:
myComplex(){};
myComplex(int a,int b){real=a;imaginary=b;};
friend istream &operator<<(istream &in,myComplex & mc);
friend ostream &operator>>(ostream &out,myComplex & mc);

int getReal(){return real;}
int getImaginary(){return imaginary;}

myComplex operator+ (myComplex &a)
{ int re;
int im;
re=a.real+real;
im=a.imaginary+imaginary;
myComplex j(re,im);
return j;
}

myComplex operator- (myComplex &a)
{ int re;
int im;
re=a.real-real;
im=a.imaginary-imaginary;
myComplex j(re,im);
return j;
}

myComplex operator* (myComplex &a)
{ int re;
int im;
re=(a.real*real - a.imaginary*imaginary);
im=(a.real*imaginary + a.imaginary*real);
myComplex j(re,im);
return j;
}

myComplex operator/ (myComplex &a)
{ int re;
int im;
re=a.real*real+a.imaginary*imaginary / a.real*real+a.imaginary*imaginary;
im=a.real*imaginary-a.real*imaginary / a.real*real+a.imaginary*imaginary;
myComplex j(re,im);
return j;
}

myComplex::bool operator< (myComplex &a)
{
if(a.real==real)
{ if(a.imaginary>imaginary)return 1;

if(a.imaginary<imaginary)return 0;

if(a.imaginary==imaginary)return 0;

}
else if (real<a.real){
return 1;
}
return 0;
}

myComplex::bool operator> (myComplex &a)
{
if(a.real==real)
{ if(a.imaginary<imaginary)return 1;

if(a.imaginary>imaginary)return 0;

if(a.imaginary==imaginary)return 0;


}
else if (real>a.real){
return 1;
}
return 0;

}

myComplex::bool operator== (myComplex &a)
{
if(a.real==real && a.imaginary==imaginary) return 1;

return 0;

}

};


istream &operator<<(istream &in,myComplex & mc)
{ char y; char t;
in>>""+mc.getReal()>>y>>""+mc.getImaginary()>>t;
return in;
}

ostream &operator<<(ostream &out,myComplex & mc)
{ char y; char t;
out<<""+mc.getReal()<<y<<""+mc.getImaginary()<<t;
return out;
}

void main()
{
cout<<"PLEASE SELECT THE OPERATION:";
cout<<"ADDITION +";
cout<<"SUBSTRUCTION -";
cout<<"MULTIPLICATION *";
cout<<"DIVISION /";
cout<<"LESS THAN <";
cout<<"GREATER THAN >";
cout<<"EQUALS TO ==";
cout<<"QUIT q";




myComplex q;
myComplex w;
myComplex ans;
string answer;
char p;



cout<<"please give 1. number";
cin>>q<<endl;
cout<<"please give 2. number";
cin>>w<<endl;


switch(p)
{
case '+' : ans=q+w;
case '-' : ans=q-w;
case '*' : ans=q*w;
case '/' : ans=q/w;
case '<' :
case '>' :
case '==':
case 'q' :exit(0);

}


}

 

I) error no, nun yanindaki cumle ne ve compiler hangi satirda hata veriyor?
II)default constructor larin, class data member lari undefined birakiyor. soyle birsey yapmani tavsiye ederim

bu iki satiri:

myComplex(){};
myComplex(int a,int b){real=a;imaginary=b;};

buna cevir:

myComplex(int a=0,int b=0){real=a;imaginary=b;};

III)operator overloading yaptigin right shift operatorunun yonu yanlis:

bunu:
istream &operator<<(istream &in,myComplex & mc)
buna cevir:
istream &operator>>(istream &in,myComplex & mc)

IV) ve en onemlisi, eger c++ ogrenmek icin en azindan 7-8 kitap okumayi goze almadiysan hic bulasma, ve c# ya da java ogren.

egotm
1

mobil görünümden çık