188 Глава 5 • Шаблоны }: int

Автор admin Воскресенье, 17 мая 2009 11:32

188 Глава 5 • Шаблоны }: int mainO { Containersnt. Аггау> container; container.append(l): container.append(2); int* p = container.beginO; while(p != container.endO) cout « *p++ « endl; } ///:- Шаблон класса Array представляет собой тривиальный контейнер для хранения последовательности элементов. Шаблон Container получает два параметра: тип хранящихся в нем объектов и шаблон, предназначенный для хранения данных. Следующая строка в реализации класса Container требует, чтобы мы сообщили компилятору о том, что Seq является шаблоном: Seq seq; Если не объявить Seq как шаблон, являющийся параметром шаблона, то компилятор пожалуется, что Seq не является шаблоном, поскольку мы задействуем его в нешаблонном контексте. В функции main() создается специализация Container, использующая шаблон Array для хранения int, так что Seq фактически является синонимом для Array. Обратите внимание: задавать имя параметра Seq в объявлении Container в данном случае не нужно. Речь идет о строке tempiate class Seq> Хотя с таким же успехом можно было написать следующую строку, параметр U нигде не использ


Комментарии закрыты.