#include #include #include using namespace std; class A; class person{ private: string nazwa; int wiek; vector vec; public: person() {} person(string nazwa, int wiek){ this->nazwa=nazwa; this->wiek=wiek; } int getWiek() const { return wiek; } string getNazwa() const{ return nazwa; } bool operator<(const person &p){ if(this->wiek < p.getWiek()) return true; else if(this->wiek > p.getWiek()) return false; else return this->nazwa < p.getNazwa(); } person &operator <<=(person *p) { for(const person *a : vec) { if(a->getNazwa()==p->getNazwa() && a->getWiek()==p->getWiek()) return *this; } vec.push_back(p); return *this; } person operator[](int a) { return *vec[a]; } friend class A; }; class A { private: person *o; public: A(person *p) { o = p; } bool operator()(person *p) { return p == o || find(o->vec.begin(), o->vec.end(), p) != o->vec.end(); } }; int main() { person p("Janusz", 50); person p1("Sebek", 17); person p2("Dzesika", 17); cout<<(p1