• другие шаблоны. Все шаблоны,

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

• другие шаблоны. Все шаблоны, упоминавшиеся в первом томе, относятся к первой, наиболее распространенной категории. Классическим примером простого контейнерного шаблона является стек (Stack). Для объекта Stack как контейнера неважно, объекты какого типа в нем хранятся; логика его работы не зависит от типа элементов. По этой причине тип элементов может быть параметризован: templates lass Т> class Stack { Т* data; size t count; 184 Глава 5 • Шаблоны public: void push(const T& t): // И т. д. }: Фактический тип, используемый конкретным экземпляром Stack, определяется аргументом, передаваемым в параметре Т: Stack myStack: // Контейнер Stack с элементами типа int Компилятор создает версию Stack для типа int, для чего он подставляет int вместо Т и генерирует соответствующий код. В данном случае будет сгенерирован специализированный класс с именем Stack. Нетиповые параметры шаблонов Нетиповой параметр шаблона должен быть целочисленным значением, известным на стадии компиляции. Например, для создания стека фиксированного размера можно использовать нетиповой параметр, который будет определять разме


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