Witam. Czytałem kilka artykułów na temat polimorfizmu, wirtualnych destruktorów itd.
Nie do końca rozumiem tą ideę.
[url]http://pl.wikipedia.org/wiki/Destruktor[/url]
class Osoba
{
public:
virtual ~Osoba()
{
std::cout << "~Osoba(): uruchomiono" << std::endl;
}
};
class Pracownik : public Osoba
{
public:
~Pracownik()
{
std::cout << "~Pracownik(): uruchomiono" << std::endl;
}
};
int main()
{
Osoba *wsk = new Pracownik;
delete wsk;
return 0;
}
Jaki sens ma w main deklarować Osoba wsk = new Pracownik(i używać tym samym wirtualnego destruktora) zamiast po prostu
Pracownikwsk = new Pracownik; (wtedy nie trzeba się niczym przejmować)
Po co wskaźnik typu osoba jeśli zamierzamy używać typu pracownik?