# include "comprat1.cpp";//clasa RATIONAL
class COMPLEX:public RATIONAL
{
private:
float re,im;
public:
int get_re()
{return re;}
int get_im()
{return im;}
COMPLEX()
{
RATIONAL r1,r2;
cout<<"\Intr un nr RATIONAL sub forma a/b: ";
cin>>r1;
cout<<"\Intr un nr RATIONAL sub forma a/b: ";
cin>>r2;
re=((float)r1.x)/r1.y;
im=((float)r2.x)/r2.y;
}
COMPLEX(int n)
{re=im=n;}
COMPLEX(int n,int m)
{re=n;im=m;}
~COMPLEX() //Vezi Alt+F5
{
cout<<"\nSalut!";
}
void afis()
{
printf("\nNr complex este: %.2f+i*%.2f\n",this->re,this->im);
}
void suma(COMPLEX c1)
{
re=re+c1.re; //this->re=this->re+c1.re;
im=im+c1.im;
}
friend void sum(COMPLEX x, COMPLEX y);
COMPLEX operator+(COMPLEX z)
{
COMPLEX t(re+z.re,im+z.im);
return t;
}
};
void aduna(COMPLEX c1,COMPLEX c2)
{
cout<<"Suma este: "<<c1.get_re()+c2.get_re()<<"+i*"<<c1.get_im()+c2.get_im();
}
//void aduna(COMPLEX &c1,COMPLEX &c2) nu mai sunt create obiecte temporare
//este apelat un contructor implicit de copiere, nu sunt apelati destructori
//Vezi Alt+F5
void sum(COMPLEX x, COMPLEX y)
//friend = fara COMPLEX :: = f. externa care are acces la atribute
{
cout<<"Sum_friend este: "<<x.re+y.re<<"+i*"<<x.im+y.im;
}
Niciun comentariu:
Trimiteți un comentariu