te
Автор admin
Вторник, 19 мая 2009 11:32
te void apply(Seq& sq. R (T::*f)0) { typename Seq: iterator it = sq.beginO; while(it != sq.endO) { Шаблоны функций 205 ((*1t++)->*f)(): } } // Неконстантная функция, 1 аргумент, // произвольный тип возвращаемого значения: tempiate void apply(Seq& sq. R(T::*f)(A). A a) { typename Seq::iterator it – sq.beginO: while(it !- sq.endO) { ((*1t++)->*f)(a): } } // Неконстантная функция, 2 аргумента. // произвольный тип возвращаемого значения: tempiate void apply(Seq& sq. R(T::*f)(Al. A2). Al al. A2 a2) { typename Seq: iterator it – sq.beginO: whiledt !- sq.endO) { ((*1t++)->*f)(al. a2): } } // И т. д. для наиболее вероятных аргументов ///:- Шаблон функции apply() получает ссылку на класс контейнера и указатель на функцию класса объектов, содержащихся в контейнере. Шаблон перебирает элементы контейнера при помощи итератора и вызывает функцию для каждого объекта. Мы перегрузили функции по константности, поэтому шаблон может использоваться как с константными, так и с неконстантными функциями. Обрати
Теги: net
Комментарии закрыты.
Автор admin Вторник, 19 мая 2009 11:32
te
Комментарии закрыты.
Последние комментарии