#include #include using namespace std; class Zivotinja { public: Zivotinja(double tezina = 0) :_tezina(tezina) { cout << "Konstruktor zivotinje" << endl; } double vratiTezinu() const { return _tezina; } virtual void kaziZdravo() const = 0; virtual ~Zivotinja() { cout << "Destruktor zivotinje" << endl; } private: double _tezina; }; class Pas : public Zivotinja { public: Pas(string ime, double tezina) :Zivotinja(tezina), _ime(ime) { cout << "Konstruktor psa" << endl; } string vratiIme() const { return _ime; } void kaziZdravo() const { cout << "Av-av!" << endl; } ~Pas() { cout << "Destruktor psa" << endl; } private: string _ime; }; class Macka : public Zivotinja { public: Macka(string ime, double tezina) :Zivotinja(tezina), _ime(ime) { cout << "Konstruktor macke" << endl; } string vratiIme() const { return _ime; } void kaziZdravo() const { cout << "Mjau-mjau!" << endl; } ~Macka() { cout << "Destruktor macke" << endl; } private: string _ime; }; int main() { //Zivotinja z(10); //cout << "z.vratiTezinu() = " << z.vratiTezinu() << endl; //z.kaziZdravo(); Pas p("Zucko", 5); cout << "p.vratiTezinu() = " << p.vratiTezinu() << endl; cout << "p.vratiIme() = " << p.vratiIme() << endl; p.kaziZdravo(); Macka m("Maca", 2); cout << "m.vratiTezinu() = " << m.vratiTezinu() << endl; cout << "m.vratiIme() = " << m.vratiIme() << endl; m.kaziZdravo(); Zivotinja* niz[3]; niz[0] = new Pas("Micko", 7); niz[1] = new Macka("Mica", 3); niz[2] = new Pas("Dzeki", 8); for (unsigned i = 0; i < 3; i++) { cout << niz[i]->vratiTezinu() << endl; //cout << niz[i]->vratiIme() << endl; niz[i]->kaziZdravo(); } for (unsigned i = 0; i < 3; i++) delete niz[i]; return 0; }