#include #include #include #include #include #include using namespace std; class Animal { private: int varsta, picioare; static int lastId; public: int id; Animal() { id = lastId; lastId++; } Animal(int varsta, int picioare) { id = lastId; lastId++; this->varsta = varsta; this->picioare = picioare; } virtual ~Animal() { } virtual void vorbeste() { cout << "Animalul vorbeste\n"; cout << "Are varsta " << varsta << "\n"; } static void f() { cout << "S-a apelat functia f\n"; } bool operator<(const Animal &other) const { return varsta < other.varsta; } int getVarsta() { return varsta; } int getPicioare() { return picioare; } }; int Animal::lastId = 0; class Caine: public Animal { private: int culoare; public: Caine(int varsta, int picioare, int culoare): Animal(varsta, picioare) { this->culoare = culoare; } void vorbeste() { cout << "Cainele latra\n"; } void seJoaca() { cout << "Cainele se joaca\n"; } }; class Pisica: public Animal { public: void vorbestte() { cout << "Pisica miauna\n"; } }; template class Vector { private: T elemente[elemMax]; int n; public: Vector() { n = 0; } void Push_back(T x) { elemente[n++] = x; } T get_element_at_index(int ind) const { return elemente[ind]; } }; int main() { Vector v; v.Push_back(5); v.Push_back(7); v.Push_back(1); Vector x; x.Push_back(Animal(1, 5)); x.Push_back(Animal(2, 1)); cout << x.get_element_at_index(0).getPicioare(); return 0; }