Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Параметрический полиморфизм



Параметрический полиморфизм - это механизм использования обобщенного определения функции или класса (шаблона) для автоматической генерации новых функций или классов.

Шаблон функции - это обобщенное определение функции, использующее типы в качестве параметров функции.

- Синтаксис шаблона функции:

template <class t1[,...]> //спецификация шаблона

t_vozvr imf(t1 p1[,...]) //определение функции

{ //t1 - идентификатор, обозначающий тип

... //imf - имя функции

} //p1 - параметр функции типа t1

Шаблон функции характеризуется следующими свойствами:

- состоит из спецификации шаблона и определения функции; спецификация имеет список параметров шаблона, окаймленный скоб-ками <>; определение функции использует параметры шаблона; например:

template <class tip>

void vyvod(tip x) { tip y=x; cout<<y;}

- параметр шаблона - это любой идентификатор с ключевым словом class, обозначающий параметризованный тип; слово class означает обобщенное понятие любого типа, включая и тип class;

- в списке параметров функции можно иметь также переменные со встроенными типами и типами, определяемыми пользователем; например: void vvod(tip x,int n);

- при вызове функции компилятор автоматически создает экземпляр функции, заменяя параметры шаблона на заданные в операторе вызова типы; например: int a; vyvod(a);

- могут быть перегруженными, как и обычные функции.

Шаблон класса - это обобщенное определение класса, использующее тип в качестве параметра класса.

- Синтаксис шаблона класса:

template <class t1[,...]>//спецификация шаблона

class imcl //определение класса

{ //t1 - идентификатор, обозначающий тип

... //class t1 - параметр шаблона

} //imcl - имя класса

- Синтаксис оператора вызова:

imcl<tip1> obj; //объявление объекта класса с типом tip1

imcl<int> obj1; //создается класс для типа int

imcl<t> obj2; //создается класс для типа t

Шаблон класса характеризуется следующими свойствами:

- состоит из спецификации шаблона и определения класса; спецификация имеет список параметров шаблона, окаймленный скобками <>;

- параметр шаблона - это любой идентификатор с ключевым словом class, обозначающий параметризованный тип; слово class означает обобщенное понятие любого типа, включая и тип class;

-в списке параметров шаблона можно иметь также переменные со встроенными типами и типами, определяемыми пользователем, так называемые нетиповые параметры, значения которых должны быть константами; например: <class t,int n>;

- при вызове класса компилятор автоматически создает экземпляр класса, заменяя параметры шаблона на заданные в операторе вызова типы.

Контрольные вопросы

1. Что такое объектно-ориентированное программирование?

2. Что такое классы и объекты?

3. Какие специальные элементы-функции имеются в классе?

4. Какие бывают спецификаторы доступа к элементам класса?

5. Чем отличаются простое и множественное наследование?

6. Как управляют доступом к наследуемым элементам?

7. Зачем нужны виртуальные базовые классы?

8. Что означает перегрузка операций и перегрузка функций?

9. Какие преимущества дают виртуальные функции?

10. Для чего используется параметрический полиморфизм?





Дата публикования: 2014-11-26; Прочитано: 804 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...