Witam. Jak zwolnić pamięć w przypadku takiego kodu?
#include <iostream>
using namespace std;
class Napoj {
public:
virtual double koszt() = 0;
virtual ~Napoj();
};
class Kawa : public Napoj {
public:
double koszt() {
return 1.20;
}
~Napoj()
{
cout << "Usuwam KAWE" << endl;
}
};
class Mleko : public Napoj {
public:
Napoj *napoj;
Mleko(Napoj *n) { napoj = n; }
double koszt() {
return napoj->koszt() + 0.20;
}
~Napoj()
{
cout << "Usuwam MLEKO" << endl;
delete this->napoj;
}
};
int main() {
Napoj *napoj = new Kawa;
napoj = new Mleko(napoj);
napoj = new Mleko(napoj);
cout << napoj->koszt() << endl;
delete napoj;
return 0;
}
Z góry dziękuje za pomoc.