n.push_back(ap); else if(pp) p
Автор admin Воскресенье, 14 июня 2009 11:32
n.push_back(ap); else if(pp) paperBin.push_back(pp); else if(gp) glassBin.push_back(gp); ++sorter: } sumValue(alumBin. cout); sumValue(paperBin. cout); 438 Глава 8 • RTTI sumValue(glassBin. cout); sumValue(bin. cout); purge(bin); } ///:- Сначала несортированный мусор бросается в один общий бак, так что специализированная информация типа «теряется». Но позднее для правильной сортировки необходимо получить фактическую информацию о типе, поэтому мы используем RTTI. Данное решение можно улучшить за счет отображения, связывающего указатели на объекты type_info с вектором указателей на Trash. Для отображения необходим предикат упорядочения, поэтому мы предоставляем такой предикат с именем TInfoLess, вызывающий функцию type_info::before(). В процессе вставки в отображение указатели на Trash автоматически ассоциируются с их ключами type_info. Обратите внимание на изменение определения sumValue()*B новом варианте решения: //: C08:Recycle2.cpp //{L} Trash // Переработка мусора с использованием отображения #i nclude
Последние комментарии