Имея список shared_pointers для экземпляров элементов, приведенных к базовому классу, каковы параметры приведения для сортировки элементов в отдельные списки? - PullRequest
1 голос
/ 31 марта 2012

Скажем, у нас есть базовый класс green и такое иерархическое дерево:

enter image description here

У нас есть список greenList, заполненный всеми классами red, blueи т. д. выглядит как green.Мы не создаем этот список, нам дают его заполненный данными.Теперь мы хотим создать списки для классов red, yellow и т. Д.У нас есть заголовки для классов red и т. Д., Мы не хотим иметь getType внутри класса green.

Как отсортировать этот список greenList в списки типа redList, yellowListи т.д. в C ++ 03 (с использованием boost)?

1 Ответ

1 голос
/ 31 марта 2012

Если они являются указателями, используйте dynamic_cast и проверьте возвращаемое значение;если это ссылки, используйте динамическое приведение внутри блока try / catch.

...