#include <iostream>
using namespace std;
class Savec
{
public:
Savec():jehoVek(1) { cout << "konstuktor Savec..\n"; }
virtual ~Savec() {}
virtual void Promluvit() const { cout << "Savec hovori!\n"; }
protected:
int jehoVek;
};
class Pes : public Savec
{
public:
void Promluvit()const { cout << "Haf!\n"; }
};
class Kocka : public Savec
{
public:
void Promluvit()const { cout << "Mnau!\n"; }
};
class Kun : public Savec
{
public:
void Promluvit()const { cout << "Ihaha!\n"; }
};
class Vepr : public Savec
{
public:
void Promluvit()const { cout << "Chrocht!\n"; }
};
int main()
{
Savec *toPole[5];
Savec *ukz;
int volba, i;
for (i=0; i<5; i++)
{
cout << "(1)pes (2)kocka (3)kun (4)vepr: ";
cin >> volba;
switch(volba)
{
case 1: ukz = new Pes; break;
case 2: ukz = new Kocka; break;
case 3: ukz = new Kun; break;
case 4: ukz = new Vepr; break;
default: ukz = new Savec; break;
}
toPole[i] = ukz;
}
for (i=0;i<5;i++)
toPole[i]->Promluvit();
system("pause");
return 0;
}
Cely kod jsem pochopil az na jednu vec. Proc je u destruktoru virtual? Program funguje stejne i kdyz tam virtual neni, takze by me zajimalo, k cemu to je, popr. zda li se to neda k necemu vyuzit..?