С++ - язык, который изучается постепенно.Параметизированные типы.
                   Справочники Всё для создания сайта

Ссылки


Home
Бизнес
Справочники
Советы







Материалы книги получены с http://www.itlibitum.ru/

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

Параметризованный тип внешне представляет собой обычное объявление класса, которому предшествует магическое заклинание template <c1ass Type>, где Type - выбранное вами символическое имя (остальные элементы задаются жестко). Всюду, где символическое имя Type (или другое имя) встречается в объявлении класса оно интерпретируется как макрос, вместо которого при использовании класса подставляется конкретный тип. Класс ListNode, переписанный как параметризованный тип, выглядит следующим образом:

template <class Type>

class ListNode {

private:

ListNode<Type>* next;

Type* data;

public:

ListNode(Type* d, ListNode<Type>* n = NULL) : next(n), data(d) {}

~ListNode() { delete next; }

Type* Data() { return data; }

ListNode<Type>* Next() { return next; }

};

ListNode<Foo> list = new ListNode<Foo> (new Foo);

Foo* f = list->Data(); // Возвращает правильный тип

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


Назад    Содержание    Далее    

Home  Создание сайтов  Учебник по записи CD  Справочник Web дизайнера Самоучитель IE PHP и MySQL Компьютерные сети С++ E-mail me

Copyright 2007. Климов Александр. All Right Reserved.
Hosted by uCoz