Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <initializer_list>
- #include <cmath>
- #include <string>
- #include <algorithm>
- using namespace std;
- class Knjiga {
- int evidencijski_broj;
- string knjiga;
- int clanski_broj;
- int broj_dana;
- public:
- Knjiga (int broj, string knjiga) : evidencijski_broj(broj), knjiga(knjiga), clanski_broj(0), broj_dana(-1) {}
- virtual ~Knjiga() {}
- int DajEvBroj() const { return evidencijski_broj;}
- string DajKnjigu() const { return knjiga; }
- int DajClanski() const { return clanski_broj; }
- int DajBrojDana() const { return broj_dana; }
- virtual Knjiga* DajKopiju() const { return new Knjiga(*this); }
- void Zaduzi(int broj=0) {
- evidencijski_broj=broj;
- if (broj!=0) broj_dana=0;
- }
- bool DaLiJeZaduzena() const {
- if (clanski_broj==0) return false;
- return true;
- }
- virtual void Ispisi(ostream& tok) const {
- tok<<"Knjiga "<<knjiga<<" i jos neki tekst nemam pojma"<<endl;
- }
- virtual bool DaLiJeUdzbenik() const { return false; }
- };
- class Udzbenik : public Knjiga {
- string predmet;
- public:
- virtual ~Udzbenik() {}
- string DajPredmet() const { return predmet; }
- Udzbenik(int broj, string knjiga, string predmet) : Knjiga(broj, knjiga), predmet(predmet) {}
- Knjiga* DajKopiju() const { return new Udzbenik(*this); }
- void Ispisi(ostream& tok) const {
- tok<<"Knjiga "<<DajKnjigu()<<" namijenjena za predmet "<<predmet<<" i jos neki tekst nemam pojma"<<endl;
- }
- bool DaLiJeUdzbenik() const { return true; }
- };
- class Biblioteka {
- Knjiga **vek;
- int broj_knjiga;
- const int kapacitet;
- public:
- explicit Biblioteka(int kapacitet) : broj_knjiga(0), kapacitet(kapacitet), vek(new Knjiga*[kapacitet]{}) {}
- ~Biblioteka() {
- for (int i = 0;i < broj_knjiga; i++)
- delete vek[i];
- delete[] vek;
- }
- Biblioteka(const Biblioteka &b) : broj_knjiga(b.broj_knjiga), kapacitet(b.kapacitet), vek(new Knjiga*[b.kapacitet]{}){
- for (int i = 0;i < broj_knjiga; i++) vek[i] = (*b.vek[i]).DajKopiju();
- }
- Biblioteka(Biblioteka &&b) : broj_knjiga(b.broj_knjiga), kapacitet(b.kapacitet), vek(b.vek) {
- b.vek=nullptr;
- b.broj_knjiga = 0;
- }
- Biblioteka& operator = (const Biblioteka &b){
- for (int i = 0;i < broj_knjiga;i++) delete vek[i];
- delete[] vek;
- broj_knjiga = b.broj_knjiga;
- vek = new Knjiga*[kapacitet]{};
- for (int i = 0;i <broj_knjiga;i++) {
- if ((*b.vek[i]).DaLiJeUdzbenik()) vek[i] = new Udzbenik(*b.vek[i]);
- else vek[i] = new Knjiga (*b.vek[i]);
- }
- }
- };
- int main() {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement