Facebook
From Xx, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 233
  1. #include "stdafx.h"
  2. #include <cstdlib>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. //-----------------------------------------------//
  8.  
  9. class wypozyczalnia
  10. {
  11. public:
  12.     int * ilosc_wypozyczonych;
  13.     int * ilosc_na_stanie;
  14.     int * liczba_pracownikow;
  15.     wypozyczalnia() {};
  16.     wypozyczalnia(int licz_p, int licz_wyp, int il);
  17.     ~wypozyczalnia();
  18.     wypozyczalnia& operator=(wypozyczalnia & wyp);
  19.     int operator-(wypozyczalnia & wyp);
  20.     void operator/(wypozyczalnia & wyp);
  21.     void operator+(wypozyczalnia & wyp);
  22.     void operator+(double licz);
  23.     void operator<<(int mult);
  24. };
  25.  
  26. wypozyczalnia::wypozyczalnia(int licz_p, int licz_wyp, int il)
  27. {
  28.     ilosc_na_stanie = new int;
  29.     liczba_pracownikow = new int;
  30.     ilosc_wypozyczonych = new int;
  31.  
  32.     *ilosc_na_stanie = il;
  33.     *liczba_pracownikow = licz_p;
  34.     *ilosc_wypozyczonych = licz_wyp;
  35. }
  36.  
  37.  
  38. wypozyczalnia::~wypozyczalnia()
  39. {
  40.     cout << "obiekt_usunieto" << endl;
  41.     delete ilosc_na_stanie;
  42.     delete ilosc_wypozyczonych;
  43.     delete liczba_pracownikow;
  44. }
  45.  
  46. //-----------------------------------------------//
  47.  
  48. wypozyczalnia&  wypozyczalnia::operator=(wypozyczalnia& wyp)
  49. {
  50.     //----------------------Czesc destruktorowa-------------------------//
  51.     delete ilosc_na_stanie;
  52.     delete ilosc_wypozyczonych;
  53.     delete liczba_pracownikow;
  54.     //----------------------Czesc konstruktorowa-------------------------//
  55.     ilosc_na_stanie = new int;
  56.     liczba_pracownikow = new int;
  57.     ilosc_wypozyczonych = new int;
  58.  
  59.     *ilosc_na_stanie = *wyp.ilosc_na_stanie;
  60.     *liczba_pracownikow = *wyp.liczba_pracownikow;
  61.     *ilosc_wypozyczonych = *wyp.ilosc_wypozyczonych;
  62.  
  63.     return wyp;
  64. }
  65.  
  66. int wypozyczalnia::operator-(wypozyczalnia& wyp)
  67. {
  68.     *ilosc_na_stanie = *ilosc_na_stanie - *wyp.ilosc_na_stanie;
  69.     *liczba_pracownikow = *liczba_pracownikow - *wyp.liczba_pracownikow;
  70.     *ilosc_wypozyczonych = *ilosc_wypozyczonych - *wyp.ilosc_wypozyczonych;
  71.     return *wyp.ilosc_na_stanie - *ilosc_na_stanie;
  72. }
  73.  
  74. void wypozyczalnia::operator/(wypozyczalnia& wyp)
  75. {
  76.     *ilosc_wypozyczonych = *ilosc_wypozyczonych / (2 * (*wyp.ilosc_wypozyczonych));
  77. }
  78.  
  79. void wypozyczalnia::operator+(double licz)
  80. {
  81.     *ilosc_wypozyczonych = *ilosc_wypozyczonych + licz;
  82. }
  83. void wypozyczalnia::operator+(wypozyczalnia& wyp)
  84. {
  85.     *ilosc_na_stanie = *ilosc_na_stanie + *wyp.ilosc_na_stanie;
  86.     *liczba_pracownikow = *liczba_pracownikow + *wyp.liczba_pracownikow;
  87.     *ilosc_wypozyczonych = *ilosc_wypozyczonych + *wyp.ilosc_wypozyczonych;
  88. }
  89.  
  90. void wypozyczalnia::operator<<(int mult)
  91. {
  92.     cout << "liczba pracownikow to : " << *liczba_pracownikow << endl;
  93.     cout << "pomnozona liczba pracownikow przez " << mult << " wynosi " << *liczba_pracownikow*mult<<endl;
  94. }
  95.  
  96. ostream& operator<<(ostream& stm, const wypozyczalnia& wyp)
  97. {
  98.     stm << "(" << *wyp.ilosc_na_stanie << ")"<<endl;
  99.     return stm;
  100. }
  101.  
  102. int main()
  103. {
  104.     wypozyczalnia pierwsza(120, 1000, 400);
  105.     wypozyczalnia druga;
  106.     druga = pierwsza;
  107.     *druga.ilosc_na_stanie = 500;
  108.     pierwsza + druga;
  109.     pierwsza << 2;
  110.     operator<<(cout, pierwsza);
  111.     cout << "liczba wypozyczonych samochodow z pierwszej bazy wynosi " <<*pierwsza.ilosc_wypozyczonych << endl;
  112.     cout << endl << endl << endl;
  113.     system("PAUSE");
  114.     return 0;
  115. }