ВУЗ: Университет управления «ТИСБИ»
Категория: Учебное пособие
Дисциплина: Объектно-ориентированное программирование
Добавлен: 20.10.2018
Просмотров: 736
Скачиваний: 10
template <class T> T MyTemplateClass<T>:: GetData(…)
После описания шаблонного класса и реализации его методов можно
объявлять переменные-экземпляры и именно в этот момент выполняется
замена условного типа конкретным:
MyTemplateClass <int> MyIntObj; // объект с целочисленным полем
MyTemplateClass <float> MyFloatObj; // объект с вещественным полем
MyTemplateClass <Student> MyStud; // объект со полем типа Student
Эта замена выполняется компилятором, который для каждой
объявленной разновидности создает свой отдельный вариант реализации
класса. Потом уже на основе этой конкретной реализации создаются
необходимые объекты. В этом состоит принципиальное отличие шаблонов
языка С++ от обобщенных классов других языков: переход от обобщенных
классов к конкретным выполняется на этапе компиляции программы, а не
на этапе ее выполнения!
Большим достоинством языка С++ является наличие мощной встроенной
библиотеки стандартных шаблонов STL (Standard Template Library). Эта
библиотека содержит, в частности, целый ряд шаблонных контейнеров
(Vector, List, Stack, Queue, Map). Данные классы позволяют создавать
контейнеры для обработки объектов любых необходимых типов.
компилятор
Реализация шаблонного
класса со вторым типом
Реализация шаблонного
класса с первым типом
Исходный текст программы
описание шаблонного класса
объявление объекта
шаблонного класса с первым
конкретным типом
объявление объекта
шаблонного класса со
вторым конкретным типом