- #include "stdafx.h"
- #include <cstdlib>
- #include <iostream>
- using namespace std;
- //-----------------------------------------------//
- class wypozyczalnia
- {
- public:
- int * ilosc_wypozyczonych;
- int * ilosc_na_stanie;
- int * liczba_pracownikow;
- wypozyczalnia() {};
- wypozyczalnia(int licz_p, int licz_wyp, int il);
- ~wypozyczalnia();
- wypozyczalnia& operator=(wypozyczalnia & wyp);
- int operator-(wypozyczalnia & wyp);
- void operator/(wypozyczalnia & wyp);
- void operator+(wypozyczalnia & wyp);
- void operator+(double licz);
- void operator<<(int mult);
- };
- wypozyczalnia::wypozyczalnia(int licz_p, int licz_wyp, int il)
- {
- ilosc_na_stanie = new int;
- liczba_pracownikow = new int;
- ilosc_wypozyczonych = new int;
- *ilosc_na_stanie = il;
- *liczba_pracownikow = licz_p;
- *ilosc_wypozyczonych = licz_wyp;
- }
- wypozyczalnia::~wypozyczalnia()
- {
- cout << "obiekt_usunieto" << endl;
- delete ilosc_na_stanie;
- delete ilosc_wypozyczonych;
- delete liczba_pracownikow;
- }
- //-----------------------------------------------//
- wypozyczalnia& wypozyczalnia::operator=(wypozyczalnia& wyp)
- {
- //----------------------Czesc destruktorowa-------------------------//
- delete ilosc_na_stanie;
- delete ilosc_wypozyczonych;
- delete liczba_pracownikow;
- //----------------------Czesc konstruktorowa-------------------------//
- ilosc_na_stanie = new int;
- liczba_pracownikow = new int;
- ilosc_wypozyczonych = new int;
- *ilosc_na_stanie = *wyp.ilosc_na_stanie;
- *liczba_pracownikow = *wyp.liczba_pracownikow;
- *ilosc_wypozyczonych = *wyp.ilosc_wypozyczonych;
- return wyp;
- }
- int wypozyczalnia::operator-(wypozyczalnia& wyp)
- {
- *ilosc_na_stanie = *ilosc_na_stanie - *wyp.ilosc_na_stanie;
- *liczba_pracownikow = *liczba_pracownikow - *wyp.liczba_pracownikow;
- *ilosc_wypozyczonych = *ilosc_wypozyczonych - *wyp.ilosc_wypozyczonych;
- return *wyp.ilosc_na_stanie - *ilosc_na_stanie;
- }
- void wypozyczalnia::operator/(wypozyczalnia& wyp)
- {
- *ilosc_wypozyczonych = *ilosc_wypozyczonych / (2 * (*wyp.ilosc_wypozyczonych));
- }
- void wypozyczalnia::operator+(double licz)
- {
- *ilosc_wypozyczonych = *ilosc_wypozyczonych + licz;
- }
- void wypozyczalnia::operator+(wypozyczalnia& wyp)
- {
- *ilosc_na_stanie = *ilosc_na_stanie + *wyp.ilosc_na_stanie;
- *liczba_pracownikow = *liczba_pracownikow + *wyp.liczba_pracownikow;
- *ilosc_wypozyczonych = *ilosc_wypozyczonych + *wyp.ilosc_wypozyczonych;
- }
- void wypozyczalnia::operator<<(int mult)
- {
- cout << "liczba pracownikow to : " << *liczba_pracownikow << endl;
- cout << "pomnozona liczba pracownikow przez " << mult << " wynosi " << *liczba_pracownikow*mult<<endl;
- }
- ostream& operator<<(ostream& stm, const wypozyczalnia& wyp)
- {
- stm << "(" << *wyp.ilosc_na_stanie << ")"<<endl;
- return stm;
- }
- int main()
- {
- wypozyczalnia pierwsza(120, 1000, 400);
- wypozyczalnia druga;
- druga = pierwsza;
- *druga.ilosc_na_stanie = 500;
- pierwsza + druga;
- pierwsza << 2;
- operator<<(cout, pierwsza);
- cout << "liczba wypozyczonych samochodow z pierwszej bazy wynosi " <<*pierwsza.ilosc_wypozyczonych << endl;
- cout << endl << endl << endl;
- system("PAUSE");
- return 0;
- }