Объектно-ориентированные технологии проектирования прикладных программных систем

Шаблоны в языке C++


В языке C++ возможно и параметрическое программирование (программирование с использованием родовых компонентов). Родовые (параметризованные) компоненты обладают свойством адаптивности к конкретной ситуации, в которой такой компонент используется, что позволяет разрабатывать достаточно универсальные и в то же время высокоэффективные компоненты программ (в частности, объекты).

Параметрическое программирование в языке C++ реализовано с помощью шаблонов (template). В C++ определено два вида шаблонов: шаблоны-классы и шаблоны-функции.

Шаблоны-классы могут использоваться многими способами, но наиболее очевидным является их использование в качестве адаптивных объектов памяти. Шаблоны-функции могут использоваться для определения параметризованных алгоритмов. Основное отличие шаблона-функции от шаблона-класса в том, что не нужно сообщать компилятору, к каким типам параметров применяется функция, он сам может определить это по типам ее формальных параметров.

Возможность параметрического программирования на языке C++ обеспечивается стандартной библиотекой шаблонов STL (Standard Template Library). Она включена в последнюю предварительную версию Стандарта языка C++. Библиотека подробно описана в книге D.R.Musser, A.Saini "STL Tutorial and Reference Guide. C++ Programming with the Standard Template Library" Addison-Wesley, 1996 (книга доступна также по ). Документация по текущей версии STL доступна по или . Наконец, реализация текущей версии STL доступна по .

| |

Comments:

Copyright ©



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