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);
}
}
#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