Объектно-ориентированное программирование С++

Слайд 2

ООП C++

ШАБЛОНЫ

Предположим, что перед нами стоит задача создания списка элементов некоторого типа.

ООП C++ ШАБЛОНЫ Предположим, что перед нами стоит задача создания списка элементов
Например, списка целых чисел. Реализация может выглядеть примерно так:
class List
{
int val;
List *next;
public:
void add(List *e);
void add(int n)
{
List *t = new List(n);
add(t);
}
void print(void);
List(int v0) { val = v0; next = NULL; };
};
void List::add(List *e)
{
List *t;
for(t=this;t->next;t=t->next);
t->next = e;
}
void List::print(void)
{
for(List *t=this;t;t=t->next)
printf("%d ", t->val);
}

Пример работы со списком:
List L=1;
L.add(&List(2));
List *pl = new List(3);
L.add(pl);
L.add(4);
L.print();

Слайд 3

ООП C++

Понятие шаблона

Введено в работе Б.Строуструпа "Parameterized Types for C++", 1988.
Определение шаблона: