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