m_iterator(cout. “\n”
Автор admin
Понедельник, 22 июня 2009 11:32
m_iterator(cout. “\n”). CompeteО); purge(v): } ///:- Перечисляемый тип Outcome классифицирует возможные результаты вызова compete(), а оператор « упрощает вывод конкретных значений Outcome. Item — базовый класс для типов с множественной диспетчеризацией. Операторная функция Compete::operator() получает два объекта Item* (точный тип обоих объектов неизвестен) и начинает процесс двойной диспетчеризации вызовом виртуальной функции Item::compete(). Механизм виртуального вызова определяет тип а, поэтому управление передается функции compete() конкретного типа а. Функция compete() выполняет вторую диспетчеризацию, вызывая eval() для оставшегося типа. Передача текущего объекта (this) в аргументе eval() порождает вызов перегруженной функции eval() с сохранением информации о типе первой диспетчеризации. При завершении второй диспетчеризации точные типы обоих объектов Item становятся известными. В функции main() алгоритм generate() библиотеки STL заполняет вектор v, а затем transform() применяет операторную функцию Compete::operator() к двум интервалам. Данная версия transform() получает начальную и коне
Комментарии закрыты.
Последние комментарии