Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.75 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement