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