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

11 шаблоны

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

11 – 11

Пример:

//Шаблон класса, представляющего

//односвязный список

template <class T>

class list { T data; list *next;

11 – 12

public: list(T d);

//Функция, которая добавляет узел

//после узла, на который указывает

//указатель node

void add(list *node)

{

node->next = this; next = 0;

}

11 – 13

//Функция, которая возвращает

//указатель на следующий узел списка

list *getnext()

{

return next;

}

T getdata()

{

return data;

}

};

11 – 14

// Для чего нужна эта функция ?

template <class T> list <T> :: list(T d)

{

data = d; next = 0;

}

11 – 15

int main()

{

list <char> start(’a’); list <char> *p, *last; int i;

11 – 16

// Создание списка символов

last = &start; for(i=1; i<26; i++) {

p = new list <char> (’a’ + i); p->add(last);

last = p;

}

11 – 17

// Печать списка

p = &start; while(p) {

cout << p->getdata(); p = p->getnext();

}

return 0;

}

abc ... xyz

11 – 18

Пример:

Создание списка ЦЧ:

list <int> int_start(1);

Пример:

struct addr { char name[40]; char street[40]; char city[30];

};

11 – 19

//имя

//адрес

Создание списка адресов: list <addr> obj(a1);

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