Przeładowanie operatora >> do wczytywania z klawiatury liczb zespolonych

0

Witam, mam takie zadanie:
Zdefiniuj klasę LiczbaZespolona posiadającą dwa pola:

  • float Re
  • float Im
    Przeładuj operator >> tak, aby służył do wczytywania z klawiatury liczb zespolonych (czyli
    pary liczb), a następnie tworzył obiekt klasy LiczbaZespolona i wstawiał go do swojego
    drugiego parametru.
    Napisałem coś takiego:
#include<cstdio>


class LiczbaZespolona
{
	
	float Re;
	float Im;
	
}



friend istream& operator>> (istream&,LiczbaZespolona&);

 
istream& operator>> (istream &wejscie, LiczbaZespolona& ex)         
{
   wejscie >> ex.re >> ex.im;
   return wejscie;
}
 
 
 int main()
 {
 	
 	
 } 

Mam problem z drugą częścią polecenia, tzn. tym, co ma robić przeładowany operator poza wczytywaniem liczb. Chciałem też zadeklarować operator jako funkcję zaprzyjaźnioną, żeby miał dostęp do całej klasy, ale kompilator czepia się o ten zapis. Byłbym wdzięczny za jakąkolwiek pomoc.

1
#include <iostream>
using namespace std;

class LiczbaZespolona
  {
   float Re,Im;
   friend istream &operator>>(istream &s,LiczbaZespolona &ex)
     {
      float re,im;
      if(s>>re>>im) { ex.Re=re; ex.Im=im; }
      return s;
     }
 };
 
 int main()
   {
 
    return 0;
   } 
0

Zrobiłeś dobrze, to zadanie jest durnie napisane.

0

Dziękuję :)

0
ArturH napisał(a)

posiadającą dwa pola:

  • float Re
  • float Im
_13th_Dragon napisał(a)
double Re,Im;

ORLY?

0
_13th_Dragon napisał(a):
#include <iostream>
using namespace std;

class LiczbaZespolona
  {
   float Re,Im;
   friend istream &operator>>(istream &s,LiczbaZespolona &ex)
     {
      float re,im;
      if(s>>re>>im) { ex.Re=re; ex.Im=im; }
      return s;
     }
 };
 
 int main()
   {
 
    return 0;
   } 

Powinno być:

int main()
{
    return EXIT_SUCCESS;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1