#include #include using namespace std; class Zivotinja { public: Zivotinja(int t) :_tezina(t) { cout << "Konsturktor zivotinje" << endl; } int vratiTezinu() const { return _tezina; } virtual void kaziZdravo() const = 0; virtual ~Zivotinja() { cout << "Destruktor zivotinje" << endl; } private: int _tezina; }; class Pas : public Zivotinja { public: Pas(int t, string i) :Zivotinja(t), _ime(i) { cout << "Konstuktor psa" << endl; } void kaziZdravo() const { cout << "Av-av" << endl; } ~Pas() { cout << "Destruktor psa" << endl; } private: string _ime; }; class Macka : public Zivotinja { public: Macka(int t, string i) :Zivotinja(t), _ime(i) { cout << "Konstuktor macke" << endl; } void kaziZdravo() const { cout << "Mjau-mjau" << endl; } ~Macka() { cout << "Destruktor macke" << endl; } private: string _ime; }; int main() { //Zivotinja z(10); Pas p(15, "Zucko"); Macka m(2, "Maca"); //cout << z.vratiTezinu() << endl; cout << p.vratiTezinu() << endl; cout << m.vratiTezinu() << endl; //z.kaziZdravo(); p.kaziZdravo(); m.kaziZdravo(); Zivotinja* niz[3]; niz[0] = new Pas(11, "Rex"); niz[1] = new Macka(6, "Garfild"); //niz[2] = new Zivotinja(9); niz[2] = new Macka(3, "Maca"); for (int i = 0; i < 3; i++) cout << niz[i]->vratiTezinu() << endl; for (int i = 0; i < 3; i++) niz[i]->kaziZdravo(); for (int i = 0; i < 3; i++) delete niz[i]; return 0; }