Witam, w klasie Koszyk mam zdefiniować operator+=, tak, aby możliwe było dodanie produktów do koszyka, nie mogę sobie z tym poradzić, jakieś podpowiedzi?
Moja biblioteka
#include <iostream>
#include <vector>
using namespace std;
class Produkt
{
public:
string nazwa;
double cena;
public:
Produkt(string, double);
~Produkt();
friend ostream& operator <<(ostream&, const Produkt&);
};
class Nabial : public Produkt
{
double tluszcz;
public:
Nabial(string, double, double);
~Nabial();
friend ostream& operator <<(ostream&, const Nabial&);
};
class Chemiczny : public Produkt
{
string ostroznosc;
public:
Chemiczny(string, double, string);
~Chemiczny();
friend ostream& operator <<(ostream&, const Chemiczny&);
};
class Spozywczy : public Produkt
{
string termin;
public:
Spozywczy(string, double, string);
~Spozywczy();
friend ostream& operator <<(ostream&, const Spozywczy&);
};
class Koszyk
{
public:
friend ostream& operator+=(ostream&, const &Koszyk);
};
biblioteka.cpp
#include "kasa.h"
Produkt::Produkt(string _nazwa, double _cena) : nazwa(_nazwa), cena(_cena)
{
}
Produkt::~Produkt()
{
}
Nabial::Nabial(string _nazwa, double _cena, double _tluszcz) : Produkt(_nazwa, _cena), tluszcz(_tluszcz)
{
}
Nabial::~Nabial()
{
}
Chemiczny::Chemiczny(string _nazwa, double _cena, string _ostroznosc) : Produkt(_nazwa, _cena), ostroznosc(_ostroznosc)
{
}
Chemiczny::~Chemiczny()
{
}
Spozywczy::Spozywczy(string _nazwa, double _cena, string _termin) : Produkt(_nazwa, _cena), termin(_termin)
{
}
Spozywczy::~Spozywczy()
{
}
ostream& operator<<(ostream& os, const Produkt &p)
{
os << "cena: " << p.cena << " nazwa produktu: " << p.nazwa << endl;
return os;
}
ostream& operator<<(ostream& os, const Nabial &n)
{
os << "cena: " << n.cena << " nazwa: " << n.nazwa << " zawartosc tluszczu: " << n.tluszcz << "%" << endl;
return os;
}
ostream& operator<<(ostream& os, const Chemiczny &ch)
{
os << "cena: " << ch.cena << " nazwa: " << ch.nazwa << " srodek ostroznosci: " << ch.ostroznosc << endl;
return os;
}
ostream& operator<<(ostream& os, const Spozywczy &s)
{
os << "cena: " << s.cena << " nazwa: " << s.nazwa << " data waznosci: " << s.termin << endl;
return os;
}