#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 void sortare(T v[], int n) { for(int i = 0; i < n; i++) for(int j = i+1; j < n; j++) if(v[i] < v[j] == false) swap(v[i], v[j]); } int main() { int v[10] = {5, 4, 3, 2, 7, 6, 8, 9, 1, 0}; sortare(v, 10); for(int i = 0; i < 10; i++) cout << v[i] << " "; Animal a[10]; sortare(a, 10); return 0; }