Witam Państwo!
Napisałem chyba że połowa kodu, ale padłem na problem z przeładowanymi operatorami. Czy państwo mogą pomoc jak można to zrobić dalej i fajnie jeżeli ktoś wkrótce to opowiedziałby o przyładowanych operatorach:)
I mam pytanie jeszcze jedne, czy to jest konstruktor kopiujący?
liczba_zespolona(liczba_zespolona, double& L) {
double re = L.re; double im = L.im; }
To same zadanie:
Zamodelować klasę liczba_zespolona, która rozszerza publicznie klasę liczba. Klasa ma pola re i im typu double. Pola są prywatne. Należy dodać odpowiednie publiczne gettery i setery Klasa powinna posiadać konstruktor bezargumentowy, argumentowy oraz kopiujący. Metoda wypisz() ma podać na ekranie komunikat: Liczba zespolona: re + im*i (zamiast re i im są wyświetlane wartości pól re i im) Klasa posiada publiczną metodę moduł(), która zwraca wartość sqrt(re*re+im*im) Klasa powinna posiadać przeładowany operator <<. W jego realizacji jest podawany komunikat:
Oto liczba zespolona:
Wywołanie metody wypisz()
Wartośd modułu: wywołanie metody moduł()
Przykład:
liczba_zespolona l(1,2);
cout<<l
Oto liczba zespolona:
1+2i
Wartość modułu: 2.23606797749979
#include <iostream>
#include <string>
#include <math.h>
//kod który napisałem
using namespace std;
class liczba_zespolona
{
liczba_zespolona();
liczba_zespolona(double re, double im)
{
this -> re = re;
this -> im = im;
}
/* liczba_zespolona(liczba_zespolona, double& L)
{
double re = L.re;
double im = L.im;
}
Czy to jest konstruktor kopiujący?
*/
private:
double re;
double im;
public:
void GetReIm(double& re, double& im)
{
re = this -> re;
im = this -> im;
}
void SetReIm(double re, double im)
{
this -> re = re;
this -> im = im;
}
void wypisz()
{
cout << "Liczba zespolona:" << re << "+" << im << "*i";
}
double modul(double re, double im)
{
return sqrt(re*re+im*im);
}
};
int main()
{
return 0;
}