односпрямований список - посилання (зв'язок) тільки на наступні елементи
двусвязний список - посилання (зв'язок) на наступні і на попередні елементи
кільцевої список - останній елемент пов'язаний з першим
Операції над списками:
- початкове формування (створення першого елемента)
- додавання елемента в кінець списку
- читання елемента із заданим ключем
- вставка елемента в заданий місце списку (до або після елемента із заданим ключем)
- видалення елемента із заданим ключем
- упорядкування списку по ключу
Шаблони (параметризрвані класи) - дозволяють створювати сімейства родинних класів, які можна застосовувати до будь-якого типу даних і передавати цей тип як параметр класу
template <параметр шаблона> визначення класу
Правила описі шаблонів:
- локальні (вкладені в шаблон) класи не можуть містити шаблони в якості своїх аргументів
- шаблони класів можуть містити статичні елементи, дружні функції і класи
- шаблони можуть бути похідними, як від шаблонів, так і від класів, і бути базовими для них
- усередині шаблону не можна визначати наші дружні шаблони
імя_шаблона <аргументы> імя_об'екта [(параметри_конструктора)]
List
List
32) Загальний механізм обробки виключень в С ++. Генерація і перехоплення виключень. Список винятків функції.
Виняткова ситуація - це виникнення непередбаченого або аварійної події, яке може породжуватися некоректним використанням апаратури.
Механізм винятків С ++ призначений для подій, які відбуваються в результаті роботи самої програми.
Стек виклику - послідовність викликаних, але ще не завершилися функцій
Розкручування стека - процес звільнення пам'яті з-під локальних змінних і повернення управління викликає функції
Дії бібліотеки С ++ в разі генерації виключення:
1) створюється копія параметра throw у вигляді статичного об'єкта, який існує до тих пір, поки виняток оброблено
2) в пошуках підходящого обробника розкручується стек; викликаються деструктори локальних об'єктів, що виходять з області
3) об'єкт виключення передається обробнику, що має параметр, сумісний з типом
Оброблювач вважається знайденим, якщо тип об'єкту вказаного після throw:
- той же, що і в catch
- є похідним від зазначеного в catch
- є покажчиком, який може бути перетворений за стандартними правилами до вказаних в catch
void f1 () throw (int, char *)
Винятки в конструкторах: