#include #include #include using namespace std; class Zivotinja { public: Zivotinja(double tezina) :_tezina(tezina) { cout << "Konstruktor za zivotinju" << endl; } double vratiTezinu() const { return _tezina; } void postaviTezinu(double tezina) { _tezina = tezina; } virtual string kaziZdravo() const = 0; virtual ~Zivotinja() { cout << "Destruktor za zivotinju" << endl; } private: double _tezina; }; class Macka : public Zivotinja { public: Macka(double tezina, string ime) :Zivotinja(tezina), _ime(ime) { cout << "Konstruktor za macku" << endl; } string vratiIme() const { return _ime; } void postaviIme(string ime) { _ime = ime; } ~Macka() { cout << "Destruktor za macku" << endl; } string kaziZdravo() const { return "Mjau-mjau"; } private: string _ime; }; class Pas : public Zivotinja { public: Pas(double tezina, string ime) :Zivotinja(tezina), _ime(ime) { cout << "Konstruktor za psa" << endl; } string vratiIme() const { return _ime; } void postaviIme(string ime) { _ime = ime; } ~Pas() { cout << "Destruktor za psa" << endl; } string kaziZdravo() const { return "Av-av"; } private: string _ime; }; int main() { /* Zivotinja z(5); z.postaviTezinu(10); cout << z.vratiTezinu() << endl; cout << "Zivotinja kaze:" << z.kaziZdravo() << endl; */ Macka m(3, "Maca"); cout << m.vratiTezinu() << endl; cout << m.vratiIme() << endl; cout << "Macka kaze:" << m.kaziZdravo() << endl; Pas p(11, "Dzeki"); cout << p.vratiTezinu() << endl; cout << p.vratiIme() << endl; cout << "Pas kaze:" << p.kaziZdravo() << endl; vector v; //v.push_back(new Zivotinja(13)); v.push_back(new Macka(1, "malamaca")); v.push_back(new Pas(20, "Zucko")); for (unsigned i = 0; i < v.size(); i++) cout << v[i]->kaziZdravo() << endl; for (unsigned i = 0; i < v.size(); i++) delete v[i]; return 0; }