#include #include #include using namespace std; class Zivotinja { public: Zivotinja(double t) :_tezina(t) { cout << "Konstruktor za zivotinju" << endl; } virtual ~Zivotinja() { cout << "Destruktor za zivotinju" << endl; } double vratiTezinu() const { return _tezina; } void postaviTezinu(double t) { _tezina = t; } virtual void kaziZdravo() const = 0; protected: double _tezina; }; class Macka : public Zivotinja { public: Macka(double t, string i) :Zivotinja(t), _ime(i) { cout << "Konstruktor za macku" << endl; } ~Macka() { cout << "Destruktor za macku" << endl; } void kaziZdravo() const { cout << "Mjauuuuu" << endl; } private: string _ime; }; class Pas : public Zivotinja { public: Pas(double t, string i) :Zivotinja(t), _ime(i) { cout << "Konstruktor za psa" << endl; } ~Pas() { cout << "Destruktor za psa" << endl; } void kaziZdravo() const { cout << "Av-av-av" << endl; } private: string _ime; }; int main() { //Zivotinja z(0.5); //cout << "Tezina zivotinje je " << z.vratiTezinu() << endl; Macka m(0.6, "Maca"); cout << "Tezina macke je " << m.vratiTezinu() << endl; Pas p(12.6, "Zuca"); cout << "Tezina psa je " << p.vratiTezinu() << endl; //z.kaziZdravo(); m.kaziZdravo(); p.kaziZdravo(); cout << "---------------------------" << endl; Zivotinja* niz[3]; niz[0] = new Pas(12, "Sima"); niz[1] = new Macka(4, "Mara"); niz[2] = new Pas(26, "Dzeki"); for (int i = 0; i < 3; i++) niz[i]->kaziZdravo(); for (auto i : niz) i->kaziZdravo(); for (int i = 0; i < 3; i++) delete niz[i]; cout << "---------------------------" << endl; vector v; v.push_back(new Pas(12, "Sima")); v.push_back(new Macka(4, "Mara")); v.push_back(new Pas(26, "Dzeki")); //for (auto i = begin(v); i != end(v); i++) // (*i)->kaziZdravo(); for (auto i : v) i->kaziZdravo(); //for (auto i = begin(v); i != end(v); i++) // delete *i; for (auto i : v) delete i; return 0; }