Язык программирования C++


Задание свойств класса - часть 2


vector<double> dvec; sort<double, Compare<double> >(dvec);

Чтобы не загромождать запись, воспользуемся возможностью задать значение параметра по умолчанию. Так же, как и для аргументов функций и методов, для параметров шаблона можно определить значения по умолчанию. Окончательный вид функции сортировки будет следующий:

template <class T, class C = Compare<T> > void sort_vector(vector<T>& vec) { for (int i = 0; i < vec.size() -1; i++) for (int j = i; j < vec.size(); j++) { if (C::less(vec[i], vec[j])) { T tmp = vec[i]; vec[i] = vec[j]; vec[j] = tmp; } } }

Второй параметр шаблона иногда называют параметром-штрих, поскольку он лишь модифицирует поведение класса, который манипулирует типом, определяемым первым параметром.

© 2003-2007 INTUIT.ru. Все права защищены.




Начало  Назад  



Книжный магазин