Синтаксис на шаблона

Ако ще използвате шаблони, свикнете с факта, че терминът параметризиран често ще се чува във вашата реч. Шаблоните се използват за създаване на параметризирани типове (обикновено класове) и параметризирани функции.

Параметризирани типове

шаблон клас 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);

Дефиницията се генерира от компилатора, когато е необходимо, т.е. когато функцията е извикана. Този път името на функцията е параметризирано, а не името на класа.