
Локальні та глобальні об’єкти підпрограми.
Одна з цілей, якої досягають застосуванням інкапсуляції – це обмежений доступ усередину капсули.
Це не тільки неможливість передати управління в капсулу, обминувши інтерфейс, а й
спроможність використовувати об'єкти (літерали, константи, змінні), описані лише всередині капсули.
Такі об'єкти називаються локальними.
Локальні об’єкти - об’єкти, що використовуються тільки в середині капсули, і мають сенс
тільки при виконанні підпрограми, в якій їх визначено.
Це дає змогу писати підпрограми, не дбаючи про контекст, наприклад, у сенсі вибору позначень
об'єктів у програмі.
Використання локальних об'єктів пов'язане зі стратегією розподілу пам'яті для цих значень. Їх дві:
1.статична – значення локальних об'єктів зберігаються між викликами капсул (підпрограм), але|та| самі об'єкти недоступні поза|зовні| підпрограмою;
2.динамічна – при кожному виклику підпрограми створюється новий набір локальних об'єктів, а їхні значення після|потім| закінчення виклику не зберігаються.
Водночас у підпрограмі буває дозволено використання об'єктів, описаних поза|зовні| нею.
Ці об'єкти називаються глобальними.
Глобальні об’єкти – об’єкти, описані поза підпрограмою, що існують до, під час і після
виконання підпрограми.
Очевидно, що глобальні об'єкти можна використовувати для повернення результатів,
вироблених підпрограмою, тому що вони доступні в ній і в її оточенні.
Але, не дивлячись на те, що використання глобальних об’єктів у підпрограмі дозволено
синтаксично, застосовувати програмний об’єкт, що потрапив у підпрограму, обминувши
інтерфейс підпрограмної капсули вкрай небажано.
Способи передачі параметрів у підпрограму.
Способи повернення результату з підпрограми.
Процедурний тип та покажчики на функції
Абстрактні типи даних, загальні положення.
Реалізація абстрактних типів даних.
Макроси, шаблони, вбудовані функції.