Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

11 шаблоны

.pdf
Скачиваний:
13
Добавлен:
27.03.2015
Размер:
244.32 Кб
Скачать

11 – 1

6. ШАБЛОНЫ

Родовая функция

(generic function)

Родовой класс

(generic class)

11 – 2

6.1. Родовые функции

Определение шаблона функции:

template <class T>

тип_возвращаемого_значения имя_функции(список_параметров)

{

// тело функции

}

class/typename

11 – 3

Пример:

template <class T>

void swap(T &a, T &b)

{

T t; t = a; a = b; b = t;

}

11 – 4

int main()

{

int i = 10, j = 20; float x = 10.1, y = 20.2;

cout << ”До обмена”

<<endl << ”i, j: ” << i << ’ ’ << j

<<endl << ”x, y: ” << x << ’ ’ << y

<<endl;

swap(i, j); swap(x, y);

//обмен целых чисел

//обмен вещ-ных чисел

11 – 5

cout << ”После обмена”

<<endl << ”i, j: ” << i << ’ ’ << j

<<endl << ”x, y: ” << x << ’ ’ << y

<<endl;

return 0;

}

11 – 6

До обмена i, j: 10 20

x, y: 10.1 20.2

После обмена i, j: 20 10

x, y: 20.2 10.1

11 – 7

Пример:

template <class T1, class T2> void func(T1 x, T2 y)

{

cout << x << ’ ’ << y << endl;

}

11 – 8

int main()

{

func(10, ”hi”); func(0.2, 0x10000); return 0;

}

10 hi

0.2 65536

11 – 9

6.2. Родовые классы (РК)

Определение РК, т.е. определение шаблона класса:

template <class T> class имя_класса {

// тело определения класса

};

Создание объекта РК:

имя_класса <тип_данных> имя_объекта;

11 – 10

Библиотека стандартных шаблонов

Standard Template Library

STL

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]