logo
шпоры по ООП

85.Гомогенные и гетерогенные контейнеры шаблонов fds.

классы-контейнеры могут быть способны содержать гетерогенный набор членов, То есть, разных классов.

Гетерогенные контейнеры. Для того чтобы получить контейнер, хранящий и владеющий объектами различных, но связанных типов, например, типов, производных от общего базового класса, лучше использовать container<shared_ptr<Base> >. Альтернативой является хранение прокси-объектов, невиртуальные функции которых передают вызовы соответствующим виртуальным функциям реальных объектов.

Можно было рассмотреть класс как расширение развития гетерогенных типов данных (таких как структуры). Структуры - гетерогенные типы данных, предназначенные для хранения разнородных, разнотипных данных. Класс, кроме хранения обеспечивает и обработку этих данных с помощью своих функций-членов.

Гомогенные типы данных (а в качестве примера - массив) также развивались с целью более эффективного решения различных задач. Это проявилось в создании и активном использовании различных гомогенных типов данных (т.е. структур данных предназначенных для хранения однотипных элементов). Часто используют термин контейнер для обозначения таких типов данных. (вектор, стек, очередь, список, ассоциативный массив, дерево). Все эти контейнеры предназначены для хранения однотипных данных, но организация этого хранения, извлечения и обработки элементов этих структур осуществлена по-разному.