Void main(). myfunc(10,"Hello");
{
myfunc(10,"Hello");
myfunc(5.15,13L);
}
Результат виконання програми наступний:
x = 10 y = Hello
x = 5.15 y = 13
У даному прикладі при генерації конкретних екземплярів функції myfunc(), типи даних type1 та type2 замінюються компілятором на типи даних int та char* або double та long відповідно.
8.6Загальні відомості шаблонів класів
Шаблони класів надають можливість створювати класи, які параметризуються. Клас, який параметризується, створює сімейство споріднених класів, які можна застосовувати до будь-якого типу даних, передаваного як параметр. Найбільш широке застосування шаблони знаходять при створенні контейнерних класів. Контейнерним називається клас, який призначений для зберігання яким-небудь чином організованих даних і роботи з ними. Стандартна бібліотека C++ містить безліч контейнерних класів для організації структур даних різного вигляду (вони описані в розділі "Контейнерні класи").
Перевага використання шаблонів полягає в тому, що як тільки алгоритм роботи з даними визначений і відлагоджений, він може застосовуватися до будь-яких типів даних без переписування коду.
Оскільки списки часто застосовуються для організації даних, зручно описати список у вигляді класу, а оскільки може потрібно зберігати дані різних типів, цей клас має бути параметризованим.
Для засвоєння матеріалу доцільно розглянути версію класу, який не параметризується, "список".
Список складається з вузлів, зв'язаних між собою за допомогою вказівок. Кожен вузол зберігає ціле число, що є ключем списку. Опишемо допоміжний клас для представлення одного вузла списку:
Дата добавления: 2014-12-26; просмотров: 727;