Синтаксис на шаблона
Ако ще използвате шаблони, свикнете с факта, че терминът параметризиран често ще се чува във вашата реч. Шаблоните се използват за създаване на параметризирани типове (обикновено класове) и параметризирани функции.
Параметризирани типове
шаблон клас ListNode < private:
ListNode * следващ; Тип * данни;
ListNode (Type * d, ListNode * n = NULL): next (n), data (d) <>
Тип * Данни () < return data; >ListNode * Напред ()
ListNode list = нов ListNode (нов Foo);
Foo * f = list-> Data (); // Връща правилния тип
Параметризирани функции
// Шаблон за декларация на функция Тип * fn (Тип * t);
// Определете неговия шаблон за изпълнение
// Функционално тяло, в което името е Type
// използва се като параметър за макроса
Foo * f = fn (нов Foo);
Дефиницията се генерира от компилатора, когато е необходимо, т.е. когато функцията е извикана. Този път името на функцията е параметризирано, а не името на класа.