#include using namespace std; class Artykul { private: float cena; int ilosc; string nazwa; public: Artykul() : cena(0), ilosc(0){} Artykul(string _nazwa, int _ilosc, float _cena) : cena(_cena), ilosc(_ilosc), nazwa(_nazwa){} friend ostream& operator << (ostream& os, const Artykul& a) { return os << a.nazwa << " " << a.cena << " " << a.ilosc < 0) { artykuly = new Artykul[pojemnosc]; } else { artykuly = 0; } } Koszyk(const Koszyk& k) { if(pojemnosc > 0) { delete [] artykuly; } pojemnosc = k.pojemnosc; artykuly = new Artykul[pojemnosc]; for(int i = 0; i < pojemnosc; i++) { artykuly[i] = k.artykuly[i]; } pozycja = k.pozycja; } void dodaj(const Artykul& a) { if(artykuly != 0 && pozycja < pojemnosc - 1) { artykuly[pozycja] = a; pozycja++; } } Koszyk& operator = (const Koszyk& k) { if(this != &k) { if(pojemnosc > 0) { delete [] artykuly; } artykuly = 0; pojemnosc = k.pojemnosc; artykuly = new Artykul[pojemnosc]; for(int i = 0; i < pojemnosc; i++) { artykuly[i] = k.artykuly[i]; } pozycja = k.pozycja; } return * this; } Artykul& operator [] (int indeks) { return artykuly[indeks]; } ~Koszyk() { if(pojemnosc > 0) { delete [] artykuly; } } }; int main() { Koszyk k1(3); k1.dodaj(Artykul("pendrive", 2, 50.0)); k1.dodaj(Artykul("dvd", 5, 2.5)); k1.dodaj(Artykul("powerbank", 1, 200.0)); Koszyk k2(k1); k2[0] = Artykul("cpu", 1, 1000.0); cout << k1[0] << " " << k2[0] << endl; k2 = k1; k2[1] = Artykul("gpu", 1, 1000.0); cout << boolalpha << (k1[1] == k2[1]) << endl; return 0; }