Cześć, mam problem z tym zadaniem, a mianowicie z przeciążeniem operatorów zaznaczonych pogrubioną kursywą, oraz deklaracją obiektów. Jeżeli mógłby ktoś napisać jak przeciążyć te operatory byłbym wdzięczny
Podaj implementację klasy Samochod, która
w sekcji prywatnej ma pola
- ileSiedzacych - pole stałe o dodatniej wartości całkowitej, określające liczbę miejsc siedzących w samochodzie,
- ileZajetych – pole o zmiennej wartości całkowitej, reprezentujące liczbę miejsc zajętych
oraz w sekcji publicznej
- konstruktor ustawiający wartości pól na podstawie dwóch parametrów o wartościach domyślnych. Wartości
domyślne to 5 w celu ustawienia pola max oraz 0 (zero) dla pola zajete;
- metodę Wolnych dającą w wyniku wywołania liczbę wolnych miejsc siedzących;
- metodę Pasazerow dającą w wyniku wywołania liczbę zajętych miejsc siedzących;
-przeciążony operator += , metoda pozwala na powiększenie liczby zajętych miejsc siedzących o co
najwyżej ustaloną nieujemną liczbę całkowitą, wynikiem metody jest liczba zajętych miejsc siedzących
- przeciążony operator-= , metoda pozwala na zmniejszenie liczby zajętych miejsc siedzących o co
najwyżej ustaloną nieujemną liczbę całkowitą, wynikiem metody jest liczba zajętych miejsc siedzących po
tej operacji
przeciążony operator+= , realizujący przesiadanie z innego samochodu możliwie największej liczby
pasażerów, wynikiem metody jest liczba zajętych miejsc siedzących (pamiętaj o modyfikacji drugiego
samochodu);
-przeciążony operator-= , realizujący przesiadanie do innego samochodu możliwie największej liczby
pasażerów, wynikiem metody jest liczba zajętych miejsc siedzących (pamiętaj o modyfikacji drugiego
samochodu);
Ponadto powinna być możliwość korzystania z operatora << wstawiania do strumienia wyjściowego
informacji o samochodu zawierającej maksymalną liczbę miejsc siedzących i aktualną liczbę miejsc zajętych.
Zadeklaruj
obiekt A45 reprezentujący samochod mający 5 miejsc siedzących w tym 3 zajętych,
obiekt A32 reprezentujący samochodr mający 8 miejsca siedzące w połowie zajęte (zajęte 4),
wskaźnik A51 na dynamicznie utworzony pusty samochod o 5 miejscach siedzących.
Zakładamy, że nie wiemy jakie operacje zostały wykonane na wyżej wymienionych obiektach.
Należy napisać instrukcje pozwalające na
a) przesiadkę wszystkich osób z A45 do A32 i do samochodu wskazywanego przez A51;
b) opuszczenie A32 przez 7 osób;
c) wejście 3 osób do A45 i 4 osób do samochodu wskazywanego przez A51;
d) wyświetlenie liczby pasażerów we wszystkich trzech samochodach razem;
e) wyświetlenie informacji o samochod A32;
f) opuszczenie A32 przez wszystkie znajdujące się w nim osoby;
g) wyświetlenie informacji czy samochod wskazywany przez A51 jest pełny (wszystkie miejsca zajete)
#include <iostream>
using namespace std;
class Samochod
{
private:
const int ileSiedzacych;
int ileZajetych;
public:
Samochod(int s=5, int z=0);
int Wolnych();
int Pasazerow();
Samochod &operator+=(Samochod k);
Samochod & operator-=(Samochod k);
};
Samochod &Samochod::operator+=(Samochod k)
{
ileZajetych+=k.ileZajetych;
return *this;
}
int Samochod::Pasazerow()
{
return ileZajetych;
}
int Samochod::Wolnych()
{
return ileSiedzacych-ileZajetych;
}
Samochod::Samochod(int s, int z):ileSiedzacych(s)
{
ileZajetych=z;
if(ileZajetych<0 || ileZajetych>ileSiedzacych)
{
ileZajetych=0;
}
}
int main()
{
return 0;
}