#include #include using namespace std; class Zivotinja { public: Zivotinja(double x) :_tezina(x) { cout << "Konstruktor zivotinje" << endl; } double vratiTezinu() const { return _tezina; } virtual string kaziZdravo() const = 0; virtual ~Zivotinja() { cout << "Destruktor zivotinje" << endl; } private: double _tezina; }; class Pas : public Zivotinja { public: Pas(double x, const string &s) :Zivotinja(x), _ime(s) { cout << "Konstruktor psa" << endl; } string kaziZdravo() const { return "Av-av"; } ~Pas() { cout << "Destruktor psa" << endl; } private: string _ime; }; class Macka : public Zivotinja { public: Macka(double x, const string &s) :Zivotinja(x), _ime(s) { cout << "Konstruktor macke" << endl; } string kaziZdravo() const { return "Mjau-mjau"; } ~Macka() { cout << "Destruktor macke" << endl; } private: string _ime; }; int main() { //Zivotinja z(15); //cout << z.vratiTezinu() << endl; //cout << z.kaziZdravo() << endl; Pas p(10, "Zucko"); cout << p.vratiTezinu() << endl; cout << p.kaziZdravo() << endl; Macka m(3, "Maca"); cout << m.vratiTezinu() << endl; cout << m.kaziZdravo() << endl; Zivotinja* niz[3]; //niz[0] = new Zivotinja(30); niz[0] = new Pas(30, "Bucko"); niz[1] = new Pas(15, "Rex"); niz[2] = new Macka(5, "Mara"); for (int i = 0; i < 3; i++) cout << niz[i]->kaziZdravo() << endl; for (int i = 0; i < 3; i++) delete niz[i]; return 0; }