Материалы книги получены с http://www.itlibitum.ru/
Параметризованные функции
Параметризованные функции объявляются точно так же - перед их объявлениями указывается формула template.... Синтаксис шаблона должен повторяться как при объявлении, так и при определении функции. Помните, шаблоны на самом деле являются макросами, поэтому они должны находиться в файлах .h. Если определение будет находиться в файле .срр, программа работать не будет (если только это не единственный файл .срр, в котором вызывается данная функция).
// Объявление функции
template <class Type>
Type* fn(Type* t);
// Определение ее реализации
template <class Type>
Type* fn(Type* t) {
// Тело функции, в котором имя Type
// используется в качестве параметра макроса
}
Foo* f = fn<Foo>(new Foo);
Определение генерируется компилятором при необходимости, то есть при вызове функции. На этот раз параметризовано имя функции, а не имя класса.
Назад Содержание Далее
|