Разделы презентаций


Лекция № 7 по дисциплине Объектно-ориентированное программирование на тему:

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

Слайды и текст этой презентации

Слайд 1Лекция № 7 по дисциплине «Объектно-ориентированное программирование» на тему: Шаблоны

Лекция № 7 по дисциплине «Объектно-ориентированное программирование» на тему:  Шаблоны

Слайд 2Понятие шаблонов
Шаблоны — это обобщенные определения классов и функций.

Шаблоны также называют параметризованными типами.

Шаблоны дают возможность определить набор перегруженных

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

Слайд 3Шаблоны функций
П р и м е р. Шаблон функции

поиска максимума
template < class T>
T maximum(T a, T b) {

return a>b ? a : b; }

void main(){
int m = maximum(3,5);
long l= maximum(33333333, 55555555);
float f = maximum(3.5,5.5);
char ch= maximum(“a”, “b”);
char* c= maximum(“bbbbb”, “aaaaaa”);
}
Шаблоны функций П р и м е р. Шаблон функции поиска максимумаtemplate < class T>T maximum(T a,

Слайд 4Параметры шаблонов
Параметры шаблона бывают двух видов:
1) class имя —

параметр, обозначающий тип;
2) тип имя — параметр, обозначающий константу.
Пример. Определение

функции, которая возвращает значение порога, если аргумент больше порога.
template
T trsh(const T& x) {
return x< def ? x : def;
}

cout<< trsh (10);
Параметры шаблонов Параметры шаблона бывают двух видов:1) class имя — параметр, обозначающий тип;2) тип имя — параметр,

Слайд 5Класс - параметр шаблона
Если мы хотим применить функцию maximum()

к элементам некоторого класса В, он должен допускать сравнение х>y



class B {
int i;
public:
B(int v) {i=v;}
bool operator > (const B& b) {
return i>b.i;
}
};

Класс - параметр шаблона Если мы хотим применить функцию maximum() к элементам некоторого класса В, он должен

Слайд 6Класс - параметр шаблона
Другой вариант: класс В должен допускать

приведение к типу, который может сравниваться.

class B {
int

i;
public:
B(int v) {
i=v; }
operator int() {
return i; }
};
Класс - параметр шаблона Другой вариант: класс В должен допускать приведение к типу, который может сравниваться.class B

Слайд 7Перегрузка и специализация шаблонов
Шаблоны могут быть перегружены.
Специализированная функция шаблона

— это обычная функция, имя которой совпадает с именем шаблона.



Например, шаблон maximum не годится для строк, поэтому к шаблону добавим:

char* maximum(char* a, char* b){
return strcmp(a,b)>0 ? a : b;
}
Перегрузка и специализация шаблонов Шаблоны могут быть перегружены.Специализированная функция шаблона — это обычная функция, имя которой совпадает

Слайд 8Шаблоны классов
Пример.
template
class D
{
T i;
public:

D(T v) {i=v;} ;
operator T() {return i;}
};


cout

> (D(5), D (7));
Шаблоны классов Пример.template class D{ T i;  public: D(T v) {i=v;} ; operator T() {return i;}};…cout

Слайд 9Шаблон для универсального массива
Пример.
template
class UArr
{
T *v;

int size;
public:
UArr(int);
T& operator[](int i) {

return v[i];}
};
Шаблон для универсального массива Пример.template class UArr{ T *v; int size;public:  UArr(int);  T& operator[](int i)

Слайд 10Инициализация объектов и специализация шаблонов
Определение функции за пределами декларации

класса:
template UArr::Uarr (int n) {
v

= new T[n];
size = n;
}

Инициализация объекта класса:
UArr x(20);
UArr y(30);

Специализация шаблона класса: UArr::UArr(int n) {...}

Можно специализировать класс в целом
Инициализация объектов и специализация шаблонов Определение функции за пределами декларации класса: template UArr::Uarr (int n) {

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика