Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
X
- •ШАБЛОНЫ ФУНКЦИЙ И КЛАССОВ
- •Шаблоны функций
- •Все описания шаблонов функций начинаются с ключевого слова template, за котором следует
- •Формальные параметры в описании шаблона используются (наряду с параметрами встроенных типов или типов,
- •Далее, за этим заголовком, следует обычное описание функции.
- •int main() {
- •PrintArray(a,aCount);
- •Шаблоны функций расширяют возможности многократного использования программного кода.
- •Перегрузка шаблонных функций
- •Алгоритм компилятора при работе с перегруженными шаблонами функций:
- •3) если такого шаблона нет, то выводится сообщение об ошибке.
- •PrintArray(a,aCount); //генерируется шаблонная функция void PrintArray(const int* array, const int count) на основе
- •PrintArray(c,cCount); // вызывается нешаблонная функция void PrintArray(char* array, const int count)
- •Шаблоны классов
- •Процесс генерации компилятором определения конкретного класса по шаблону класса и
- •public:
- •Пример. Шаблон класса список
- •void AddElem(type *d); bool RemoveElem(type *d); void DisplayList();
- •else {
- •T p[elements]; int count;
- •Особенности применения наследования
- •1.От каждого класса произвести потомка с перекрытой соответствующей функцией. В этом случае программа
- •class B
- •Пример. Определение класса – потомка шаблонного класса
- •Шаблоны и наследование связаны друг с другом следующим образом:
- •Шаблоны и друзья
- •Шаблоны и статические члены
- •Пример. Статическое поле в шаблоне класса
- •int main() {