Этот вопрос кажется, что это может быть несколько обычным явлением, но я не нашел ничего, когда стряхивал StackOverflow или interwebs.Вызов метода класса Child при обработке списка объектов класса родителя
Я столкнулся с методом в классе C++, который принимает список объектов (например) Parent
. В этом примере предположим, что существуют два класса, которые производятся от Parent
: Child1
и Child2
.
Для каждого объекта в списке, то метод проверяет, является ли объект типа Child2
(через IsOfType()
метод, который каждый класс реализует), и если да, то он вызывает метод, который только предоставленный Child2
класса.
Это проблема в том, что метод обработки списка не может обрабатывать каждый объект одинаково? Я видел, как это делалось и в других местах, поэтому, похоже, в какой-то степени это может быть обычной практикой.
Один из вариантов может заключаться в том, чтобы объявить метод Child2
в классе Parent
, чтобы все объекты Parent
реализовали его. Однако в этом случае только класс Child2
фактически реализует любое поведение при переопределении метода.
Ваши мысли? Заранее спасибо!
В настоящее время метод обработки списка ведет себя так, как вы описали, только он не использует Typeid.Возможно, метод может оставаться как есть на данный момент, но, возможно, использовать Typeid вместо метода IsOfType(). Спасибо за это предложение! – bporter