#include <iostream>
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 <<endl;
}
bool operator == (const Artykul& a)
{
return a.cena == cena && a.ilosc == ilosc && a.nazwa == nazwa;
}
};
class Koszyk
{
private:
int pojemnosc;
Artykul * artykuly;
int pozycja;
public:
Koszyk() : pojemnosc(0), artykuly(0), pozycja(0){}
Koszyk(int _pojemnosc)
{
pozycja = 0;
pojemnosc = _pojemnosc;
if(pojemnosc > 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;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}