SHARE
TWEET

Untitled

a guest Jun 18th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <initializer_list>
  5. #include <cmath>
  6. #include <string>
  7. #include <algorithm>
  8. using namespace std;
  9.  
  10. class Knjiga {
  11.     int evidencijski_broj;
  12.     string knjiga;
  13.     int clanski_broj;
  14.     int broj_dana;
  15. public:
  16.     Knjiga (int broj, string knjiga) : evidencijski_broj(broj), knjiga(knjiga), clanski_broj(0), broj_dana(-1) {}
  17.     virtual ~Knjiga() {}
  18.     int DajEvBroj() const { return evidencijski_broj;}
  19.     string DajKnjigu() const { return knjiga; }
  20.     int DajClanski() const { return clanski_broj; }
  21.     int DajBrojDana() const { return broj_dana; }
  22.     virtual Knjiga* DajKopiju() const { return new Knjiga(*this); }
  23.     void Zaduzi(int broj=0) {
  24.         evidencijski_broj=broj;
  25.         if (broj!=0) broj_dana=0;
  26.        
  27.     }
  28.     bool DaLiJeZaduzena() const {
  29.         if (clanski_broj==0) return false;
  30.         return true;
  31.     }
  32.     virtual void Ispisi(ostream& tok) const {
  33.         tok<<"Knjiga "<<knjiga<<" i jos neki tekst nemam pojma"<<endl;
  34.     }
  35.     virtual bool DaLiJeUdzbenik() const { return false; }
  36. };
  37. class Udzbenik : public Knjiga {
  38.     string predmet;
  39. public:
  40.     virtual ~Udzbenik() {}
  41.     string DajPredmet() const { return predmet; }
  42.     Udzbenik(int broj, string knjiga, string predmet) : Knjiga(broj, knjiga), predmet(predmet) {}
  43.     Knjiga* DajKopiju() const { return new Udzbenik(*this); }
  44.     void Ispisi(ostream& tok) const {
  45.         tok<<"Knjiga "<<DajKnjigu()<<" namijenjena za predmet "<<predmet<<" i jos neki tekst nemam pojma"<<endl;
  46.     }
  47.     bool DaLiJeUdzbenik() const { return true; }
  48. };
  49.  
  50. class Biblioteka {
  51.     Knjiga **vek;
  52.     int broj_knjiga;
  53.     const int kapacitet;
  54. public:
  55.     explicit Biblioteka(int kapacitet) : broj_knjiga(0), kapacitet(kapacitet), vek(new Knjiga*[kapacitet]{}) {}
  56.     ~Biblioteka() {
  57.         for (int i = 0;i < broj_knjiga; i++)
  58.             delete vek[i];
  59.         delete[] vek;
  60.     }
  61.     Biblioteka(const Biblioteka &b) : broj_knjiga(b.broj_knjiga), kapacitet(b.kapacitet), vek(new Knjiga*[b.kapacitet]{}){
  62.         for (int i = 0;i < broj_knjiga; i++) vek[i] = (*b.vek[i]).DajKopiju();
  63.     }
  64.     Biblioteka(Biblioteka &&b) : broj_knjiga(b.broj_knjiga), kapacitet(b.kapacitet), vek(b.vek) {
  65.         b.vek=nullptr;
  66.         b.broj_knjiga = 0;
  67.     }
  68.     Biblioteka& operator = (const Biblioteka &b){
  69.         for (int i = 0;i < broj_knjiga;i++) delete vek[i];
  70.         delete[] vek;
  71.         broj_knjiga = b.broj_knjiga;
  72.         vek = new Knjiga*[kapacitet]{};
  73.         for (int i = 0;i <broj_knjiga;i++) {
  74.             if ((*b.vek[i]).DaLiJeUdzbenik()) vek[i] = new Udzbenik(*b.vek[i]);
  75.             else vek[i] = new Knjiga (*b.vek[i]);
  76.         }
  77.     }
  78.    
  79. };
  80.  
  81. int main() {
  82.    
  83.    
  84.    
  85. return 0;
  86. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top