sâmbătă, 8 septembrie 2018

Clasa complex-rational

# 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