Josif_tepe

Untitled

Jul 10th, 2025
699
0
Never
1
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class Ocila {
  5. private:
  6.     string brend;
  7.     int broj_na_primeroci;
  8. public:
  9.     Ocila() {}
  10.     Ocila(string _brend, int _broj_na_primeroci) {
  11.         brend = _brend;
  12.         broj_na_primeroci = _broj_na_primeroci;
  13.     }
  14.    
  15.     string get_brend() {
  16.         return brend;
  17.     }
  18.     int get_broj_na_primeroci() {
  19.         return broj_na_primeroci;
  20.     }
  21.    
  22. };
  23. class Prodavnica {
  24. private:
  25.     string ime;
  26.     string lokacija;
  27.     int broj_na_naocari;
  28.     Ocila * ocila;
  29.    
  30. public:
  31.     Prodavnica() {
  32.         broj_na_naocari = 0;
  33.     }
  34.     Prodavnica(string _ime, string _lokacija) {
  35.         ime = _ime;
  36.         lokacija = _lokacija;
  37.         broj_na_naocari = 0;
  38.     }
  39.    
  40.     Prodavnica(const Prodavnica & tmp) {
  41.         ime  = tmp.ime;
  42.         lokacija = tmp.lokacija;
  43.         broj_na_naocari = tmp.broj_na_naocari;
  44.         ocila = new Ocila[broj_na_naocari];
  45.        
  46.         for(int i = 0; i < broj_na_naocari; i++) {
  47.             ocila[i] = tmp.ocila[i];
  48.         }
  49.     }
  50.    
  51.     ~Prodavnica() {
  52.         delete [] ocila;
  53.     }
  54.    
  55.     Prodavnica & operator += (Ocila tmp) {
  56.         Ocila * tmp_niza = new Ocila[broj_na_naocari + 1];
  57.         for(int i = 0; i < broj_na_naocari; i++) {
  58.             tmp_niza[i] = ocila[i];
  59.         }
  60.        
  61.         tmp_niza[broj_na_naocari] = tmp;
  62.         broj_na_naocari++;
  63.        
  64.         ocila = tmp_niza;
  65.        
  66.         return * this;
  67.     }
  68.    
  69.     Prodavnica & operator -= (Ocila tmp) {
  70.         Ocila * tmp_niza = new Ocila[broj_na_naocari + 1];
  71.         tmp_niza[0] = tmp;
  72.         for(int i = 1; i <= broj_na_naocari; i++) {
  73.             tmp_niza[i] = ocila[i - 1];
  74.         }
  75.        
  76.         broj_na_naocari++;
  77.         ocila = tmp_niza;
  78.        
  79.         return *this;
  80.     }
  81.    
  82.     Prodavnica & operator ++ () {
  83.         Ocila * tmp_niza = new Ocila[broj_na_naocari - 1];
  84.         for(int i = 0; i < broj_na_naocari - 1; i++) {
  85.             tmp_niza[i] = ocila[i];
  86.         }
  87.         broj_na_naocari--;
  88.         ocila = tmp_niza;
  89.        
  90.         return *this;
  91.     }
  92.    
  93.     Prodavnica & operator -- () {
  94.         Ocila * tmp_niza = new Ocila[broj_na_naocari - 1];
  95.         for(int i = 1; i < broj_na_naocari; i++) {
  96.             tmp_niza[i - 1] = ocila[i];
  97.         }
  98.         broj_na_naocari--;
  99.         ocila = tmp_niza;
  100.        
  101.         return *this;
  102.     }
  103.    
  104.     friend ostream & operator << (ostream & stream, Prodavnica tmp);
  105.    
  106. };
  107. ostream & operator << (ostream & stream, Prodavnica tmp) {
  108.     stream << tmp.ime << " " << tmp.lokacija << " " << tmp.broj_na_naocari << endl;
  109.    
  110.     for(int i = 0; i < tmp.broj_na_naocari; i++) {
  111.         stream << tmp.ocila[i].get_brend() << " " << tmp.ocila[i].get_broj_na_primeroci() << endl;
  112.     }
  113.     return stream;
  114. }
  115. int main() {
  116.    
  117.     Prodavnica p("Prime", "Skopje");
  118.    
  119.     Ocila o1("Ray Ban", 4);
  120.     Ocila o2("Polaroid", 7);
  121.     Ocila o3("Polar", 10);
  122.     Ocila o4("Tom Ford", 19);
  123.    
  124.     p += o1;
  125.     p += o2;
  126.     p -= o3;
  127.     p -= o4;
  128.    
  129.     cout << p << endl;
  130.     ++p;
  131.     --p;
  132.     cout << p << endl;
  133.     return 0;
  134. }
  135.  
Advertisement
Comments
Add Comment
Please, Sign In to add comment