Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Rozdzial
- {
- public:
- char* nazwa;
- char* text;
- };
- class Ksiazka
- {
- int iloscStron;
- Rozdzial** rozdzialy;
- int iloscRozdzialow;
- public:
- Ksiazka()
- {
- this->rozdzialy = new Rozdzial*[1];
- this->iloscRozdzialow = 1;
- }
- Ksiazka(int i)
- {
- this->iloscStron = i;
- this->rozdzialy = new Rozdzial*[1];
- this->iloscRozdzialow = 1;
- }
- ~Ksiazka()
- {
- delete [] this->rozdzialy;
- }
- void dodajRozdzial(Rozdzial r)
- {
- Rozdzial** noweRozdzialy = new Rozdzial*[this->iloscRozdzialow];
- for(int i = 0; i<this->iloscRozdzialow; i+=1)
- {
- try
- {
- *noweRozdzialy[i] = *this->rozdzialy[i];
- }
- catch(bad_alloc)
- {
- *noweRozdzialy[i] = r;
- }
- }
- this->iloscRozdzialow+=1;
- delete [] this->rozdzialy;
- this->rozdzialy = noweRozdzialy;
- }
- void dodajRozdzial(Rozdzial* r)
- {
- Rozdzial newr = *r;
- this->dodajRozdzial(newr);
- }
- void dodajRozdzialref(Rozdzial& r)
- {
- Rozdzial newr = r;
- this->dodajRozdzial(newr);
- }
- void showRozdzialy()
- {
- for(int i = 0; i<this->iloscRozdzialow; i+=1)
- {
- cout << (*this->rozdzialy[i]).nazwa;
- }
- }
- void showRozdzial(int k)
- {
- cout << (*this->rozdzialy[k]).nazwa;
- }
- Ksiazka* operator++()
- {
- this->iloscRozdzialow+=1;
- return this;
- }
- Ksiazka* operator++(int)
- {
- Ksiazka* k = this;
- this->iloscRozdzialow+=1;
- return this;
- }
- Ksiazka operator+(Ksiazka k)
- {
- Ksiazka newk();
- k.iloscStron = this->iloscStron+k.iloscStron;
- k.iloscRozdzialow = this->iloscRozdzialow+k.iloscRozdzialow;
- Rozdzial** noweRozdzialy = new Rozdzial*[k.iloscRozdzialow];
- for(int i = 0; i<k.iloscRozdzialow; i+=1)
- {
- try
- {
- *noweRozdzialy[i] = *this->rozdzialy[i];
- }
- catch(bad_alloc)
- {
- *noweRozdzialy[i] = *k.rozdzialy[i];
- }
- }
- return k;
- }
- friend ostream& operator<<(ostream& str, const Ksiazka& k) ;
- };
- ostream& operator<<(ostream& str, const Ksiazka& k)
- {
- for(int i = 0; i<k.iloscRozdzialow; i+=1)
- {
- str << (*k.rozdzialy[i]).nazwa;
- }
- return str;
- }
Add Comment
Please, Sign In to add comment