Strona główna > Przeładowanie operatorow > Przeładowywanie operatorów C++

Przeładowywanie operatorów C++

9 Grudzień 2011 Dodaj komentarz Go to comments
//Przykład dla liczb zespolonych
#include <cstdlib>
#include <iostream>
using namespace std;

class zespol
{
        double re;
		double im;

	public:
        zespol(double r=0, double i=0) : re(r), im(i){}
		~zespol() : {}
		friend void wypisz(zespol z);
		friend void modul(zespol z);
		friend void tangens(zespol z);
		friend zespol operator+(zespol a, zespol b);
		friend zespol operator-(zespol a, zespol b);
        friend ostream & operator<<(ostream &wyjscie	, const zespol &z);
        friend istream & operator>>(istream &we, zespol &z);

};

void wypisz(zespol z)
{
  if(z.im >= 0)
  cout<<"Liczba zespolona: ["<<z.re<<"+"<<z.im<<"j]\n"<<endl;
  else
  cout<<"Liczba zespolona: ["<<z.re<<z.im<<"j]\n"<<endl;
}

void modul(zespol z)
{
   double x;
   x=sqrt(z.re*z.re+z.im*z.im);
   cout<<"Modul |z| ="<<x<<endl;
}

void tangens(zespol z)
{
     double k;
     k=z.im/z.re;
     cout<<"tg a = "<<k<<endl;
}

zespol operator+(zespol a, zespol b)
{
       zespol suma;
       suma.re=a.re+b.re;
       suma.im=a.im+b.im;
       return suma;
}

zespol operator-(zespol a, zespol b)
{
       zespol roznica;
       roznica.re=a.re-b.re;
       roznica.im=a.im-b.im;
       return roznica;
}

ostream & operator<<(ostream & wyjscie, const zespol & z)
 {
        wyjscie<<"Liczba zespolona << [";
        wyjscie<<z.re;
        if(z.im>=0)
        wyjscie<<"+";
        wyjscie<<z.im;
        wyjscie<<"j]\n";
        return wyjscie;
 }

istream & operator>>(istream &we, zespol &z)
{
       cout<<"Podaj re\n";
       we>>z.re;
       cout<<"Podaj im\n";
       we>>z.im;
       return we;
}

int main(int argc, char *argv[])
{
    zespol b(1.2,12);
    zespol a(2,1);
    zespol c;

    //przeladowanie +,-
    a=b+a+a;
    b=a-1;
    wypisz(a);
    wypisz(b);

    //modul liczby i tangens kata
    modul(b);
    tangens(a);

    //przeladowanie <<,>>
    cout<<b;
    cin>>c;
    cout<<c;
    cout<<a-c;

    system("PAUSE");
    return EXIT_SUCCESS;
}
  1. Brak komentarzy.
  1. No trackbacks yet.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: