шаблони класів

односпрямований список - посилання (зв'язок) тільки на наступні елементи

двусвязний список - посилання (зв'язок) на наступні і на попередні елементи

кільцевої список - останній елемент пов'язаний з першим

Операції над списками:

- початкове формування (створення першого елемента)

- додавання елемента в кінець списку

- читання елемента із заданим ключем

- вставка елемента в заданий місце списку (до або після елемента із заданим ключем)

- видалення елемента із заданим ключем

- упорядкування списку по ключу

Шаблони (параметризрвані класи) - дозволяють створювати сімейства родинних класів, які можна застосовувати до будь-якого типу даних і передавати цей тип як параметр класу

template <параметр шаблона> визначення класу

Правила описі шаблонів:

- локальні (вкладені в шаблон) класи не можуть містити шаблони в якості своїх аргументів

- шаблони класів можуть містити статичні елементи, дружні функції і класи

- шаблони можуть бути похідними, як від шаблонів, так і від класів, і бути базовими для них

- усередині шаблону не можна визначати наші дружні шаблони

імя_шаблона <аргументы> імя_об'екта [(параметри_конструктора)]

List list1;

List list2;

32) Загальний механізм обробки виключень в С ++. Генерація і перехоплення виключень. Список винятків функції.

Виняткова ситуація - це виникнення непередбаченого або аварійної події, яке може породжуватися некоректним використанням апаратури.

Механізм винятків С ++ призначений для подій, які відбуваються в результаті роботи самої програми.

Стек виклику - послідовність викликаних, але ще не завершилися функцій

Розкручування стека - процес звільнення пам'яті з-під локальних змінних і повернення управління викликає функції

Дії бібліотеки С ++ в разі генерації виключення:

1) створюється копія параметра throw у вигляді статичного об'єкта, який існує до тих пір, поки виняток оброблено

2) в пошуках підходящого обробника розкручується стек; викликаються деструктори локальних об'єктів, що виходять з області

3) об'єкт виключення передається обробнику, що має параметр, сумісний з типом

Оброблювач вважається знайденим, якщо тип об'єкту вказаного після throw:

- той же, що і в catch

- є похідним від зазначеного в catch

- є покажчиком, який може бути перетворений за стандартними правилами до вказаних в catch

void f1 () throw (int, char *)

Винятки в конструкторах:

Схожі статті