16. Шаблоны классов

16. Шаблоны классов

В этой главе описывается, как определять и использовать шаблоны классов. Шаблон - это предписание для создания класса, в котором один или несколько типов либо значений параметризованы. Начинающий программист может использовать шаблоны, не понимая механизма, стоящего за их определениями и конкретизациями. Фактически на протяжении всей этой книги мы пользовались шаблонами классов, которые определены в стандартной библиотеке C++ (например, vector, list и т.д.), и при этом не нуждались в детальном объяснении механизма их работы. Только профессиональные программисты определяют собственные шаблоны классов и пользуются описанными в данной главе средствами. Поэтому этот материал следует рассматривать как введение в более сложные аспекты C++.

Глава 16 содержит вводные и продвинутые разделы. Во вводных разделах показано, как определяются шаблоны классов, иллюстрируются простые способы применения и обсуждается механизм их конкретизации. Мы расскажем, как можно задавать в шаблонах разные виды членов: функции-члены, статические данные-члены и вложенные типы. В продвинутых разделах представлен материал, необходимый для написания приложений промышленного уровня. Сначала мы рассмотрим, как компилятор конкретизирует шаблоны и какие требования в связи с этим предъявляются к организации нашей программы. Затем покажем, как определять специализации и частичные специализации для шаблона класса и для его члена. Далее мы остановимся на двух вопросах, представляющих интерес для проектировщиков: как разрешаются имена в определениях шаблона класса и как можно определять шаблоны в пространствах имен. Завершается эта глава примером определения и использования шаблона класса.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Шаблоны

Из книги Компьютер + мобильник: эффективное взаимодействие автора Гольцман Виктор Иосифович

Шаблоны Шаблон – это своего рода набросок, который можно изменить под конкретные нужды. Очень часто вам придется писать однотипные сообщения вроде «Привет. Как дела?» или «Я сегодня занят. Когда освобожусь – перезвоню!». Вы можете облегчить себе жизнь, записав подобные


Шаблоны

Из книги Компьютер на 100. Начинаем с Windows Vista автора Зозуля Юрий

Шаблоны Если вам часто приходится создавать документы одного типа, вы можете значительно повысить эффективность работы с помощью шаблонов. Шаблон – это заготовка нового документа, содержащая текст, рисунки, стили и другие элементы.Чтобы познакомиться с возможностями


Шаблоны

Из книги Справочное руководство по C++ автора Страустрап Бьярн

Шаблоны Шаблон представляет собой заготовку или бланк для часто используемых документов. Можно воспользоваться готовым шаблоном, загрузить шаблон из Интернета или использовать в качестве шаблона любую ранее сохраненную книгу.Для создания нового документа на основе


R.14.1 Шаблоны типа

Из книги Excel. Мультимедийный курс автора Мединов Олег

R.14.1 Шаблоны типа Шаблон типа определяет целое семейство типов или функций.описание-шаблона-типа: template ‹ список-параметров-шаблона-типа › описаниесписок-параметров-шаблона-типа: параметр-шаблона-типа список-параметров-шаблона-типа ,


R.14.2 Шаблоны типов для классов

Из книги Эффективное использование STL автора Мейерс Скотт

R.14.2 Шаблоны типов для классов Шаблон типа для класса определяет как будут строиться классы, подобно тому, как описание класса определяет как будут строиться объекты этого класса. Шаблон типа для класса vector можно описать следующим образом:template‹class T› class vector { T* v; int


Шаблоны

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

Шаблоны Программа Excel предлагает множество готовых шаблонов оформления документа. Вы можете выбрать готовый шаблон, а затем просто подставить в ячейки свои данные. С помощью шаблонов быстро подготавливают, например, такие документы, как бланки, ведомости, календари,


Шаблоны функций классов в STL

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Шаблоны функций классов в STL Допустим, у вас есть два вектора объектов Widget, требуется скопировать объекты Widget из одного вектора в конец другого. Задача решается легко — достаточно воспользоваться интервальной функцией insert контейнера vector:vector<Widget>


13.2.2. Шаблоны

Из книги Технология XSLT автора Валиков Алексей Николаевич

13.2.2. Шаблоны Вы хотите создать стандартный документ, например резюме, служебную записку, отчет? Тогда вам пригодятся стандартные шаблоны MS Word. Выполните команду Файл, Создать. В правой части окна Word появится окошко Создание документа, в котором можно выбрать один из


Шаблоны

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Шаблоны Языки программирования С и Си++ обеспечивают строгую проверку типов данных. Некоторые языки не обеспечивают такой проверки и она полностью ложится на плечи программиста. Например в языке PL1 вы можете сравнивать значение строковой и числовой переменных. Это не


Шаблоны в MFC

Из книги Недокументированные и малоизвестные возможности Windows XP автора Клименко Роман Александрович

Шаблоны в MFC В библиотеке классов MFC определен ряд шаблонов для создания таких структур хранения информации как массив, список, словарь. Более подробно об этих шаблонах вы можете прочитать в разделе “Коллекции” главы “Некоторые классы


Встроенные шаблоны

Из книги C++ для начинающих автора Липпман Стенли

Встроенные шаблоны Для того чтобы обеспечить рекурсивную обработку документа при преобразовании, в XSLT существуют так называемые встроенные шаблоны. Несмотря на то, что они не описываются в преобразованиях явным образом, встроенные шаблоны применяются процессорами по


Синтаксические шаблоны

Из книги Секреты приложений Google автора Балуев Денис

Синтаксические шаблоны Некоторые фрагменты кода представляют синтаксические шаблоны (syntax patterns), то есть модели кода, которые демонстрируют обязательные и необязательные элементы синтаксиса операторов SQL или команд командной строки.Для синтаксических шаблонов


Шаблоны безопасности

Из книги автора

Шаблоны безопасности Шаблоны безопасности являются довольно интересной оснасткой, с помощью которой можно создать свой собственный шаблон безопасности или отредактировать уже существующие. Шаблоны безопасности представляют собой файлы, хранящие различные настройки


16.8. Шаблоны классов и модель компиляции A

Из книги автора

16.8. Шаблоны классов и модель компиляции A Определение шаблона класса - это лишь предписание для построения бесконечного множества типов классов. Сам по себе шаблон не определяет никакого класса. Например, когда компилятор видит:template class Typeclass Queue { ... };он только сохраняет


16.12. Пространства имен и шаблоны классов

Из книги автора

16.12. Пространства имен и шаблоны классов Как и любое определение в глобальной области видимости, определение шаблона класса можно поместить внутрь пространства имен. (Пространства имен рассматривались в разделах 8.5 и 8.6.) Наш шаблон будет скрыт в данном пространстве имен;


Шаблоны

Из книги автора

Шаблоны Делать работу, которая до этого уже была выполнена другими, – напрасная трата времени и сил. Ваши усилия, затраченные на оформление списка приглашенных на вечеринку, можно направить на другие неотложные дела, если воспользоваться подсистемой шаблонов. Созданные