Dlaczego to nie chce działać, przekazując adresy, do wskażników działa, ale jeśli przekazuje po prostu klase to nie działa
no matching function to call Towar:Towar() ? what?
#include <iostream>
using namespace std;
class Towar {
protected:
string nazwa;
public:
virtual void sprzedaj();
Towar(string nazwa)
: nazwa(nazwa)
{
}
};
void Towar::sprzedaj()
{
cout << "Sprzedarz " << nazwa << endl;
}
class Towar_z_Gwarancja : public Towar {
protected:
string podbicie_gwarancji;
public:
void sprzedaj();
Towar_z_Gwarancja(string nazwa, string podbicie_gwarancji)
: Towar(nazwa)
, podbicie_gwarancji(podbicie_gwarancji){};
};
void Towar_z_Gwarancja::sprzedaj()
{
Towar::sprzedaj();
cout << ".Podbicie gwarancji\n";
}
class Koszyk {
public:
int i;
Towar koszyk[10];
Koszyk(int i = 0)
: i(i){};
void Dodaj_Towar_do_Koszyka(Towar towar)
{
if (i <= 9) {
koszyk[i] = towar;
++i;
}
}
};
int main(int argc, char** argv)
{
Towar towarek1("jablko");
Towar_z_Gwarancja towarek2("sok", "3.11.1997");
Koszyk koszyk1;
koszyk1.Dodaj_Towar_do_Koszyka(towarek1);
koszyk1.Dodaj_Towar_do_Koszyka(towarek2);
return 0;
}