У меня есть вектор указателей на производные объекты, вставленные пользователем (так что я полагаю, что правильный термин "известен только во время выполнения)" ::
vector<Person *> vect;
Производными классами являются Male и Female. Я хочу сделать итерацию вектора, чтобы выбрать только женские объекты и вызвать его копирующий конструктор. Я придумал 3 решения:
Мне не нравится первый вариант в случае многих производных классов. Мне тоже не нравится третий вариант, потому что это вызовет проблемы во взаимоотношениях (Мир знает каждую женщину, но женщина не может знать мир). Поэтому я должен использовать второй вариант: пример
typeid(vect.at(i))==typeid(Female)
Правильно ли это выражение? Есть ли другой способ обозначить проблему?