
- •1. Історія розвитку мов програмування.
- •2. Структурне та об'єктно - орієнтоване програмування.
- •Процедурне програмування
- •Тема: Об'єктно — орієнтований підхід у програмуванні.
- •Суть об'єктно - орієнтовного підходу до програмування.
- •Особливості та переваги об'єктно - орієнтованого програмування.
- •Базові поняття та терміни
- •Наслідування, інкапсуляція та поліморфізм.
- •Заняття №3.
- •Написання програми.
- •2. Базові типи та описи даних.
- •Цілі числа
- •1. Основні поняття припроцесорної обробки. Компонування декількох файлів в одну програму
- •2. Припроцесорні змінні
- •3. Макровизначення (макроси).
- •4. Умовна компіляція
- •Заняття №5 Тема: Специфікація, об'єктів на основі абстрагування
- •1. Поняття класу об'єктів.
- •Формат класу.
- •Звернення до членів класу
- •Заняття №6 Тема: Ідентифікація об'єктів.
- •1. Ідентифікація назвою.
- •2. Область доступу ідентифікаторів
- •3. Опис об'єкту: інтерфейс і реалізація.
- •Тип адрес.
- •5. Ідентифікація вказівником.
- •6. Посилання
- •Віртуальні функції.
- •„Дружні" функції.
- •Тема: Інтерпретація об'єктів.
- •1. Поліморфізм
- •Тема: Інтерпретація об'єктів (заняття 2)
- •Наслідування властивостей.
- •Множинне наслідування.
- •1. Поняття „час життя" об'єкта та „область видимості".
- •Область видимості імен.
- •Тема: Динамічні структури об'єктів
- •1. Зв'язана організація пам'яті.
- •2. Асоціативні структури.
- •3. Списки. Черги. Рекурсивні структури. Набори. Дерева.
- •Тема: Процеси в об'єктах. Інкапсуляція
- •Логічний паралелізм. Схема сопрограм
- •Список використаної літератури
Множинне наслідування.
В мові С++ в якості базових можна задати декілька класів. В такому випадку похідний клас наслідує методи всіх його базових класів.
class A
{
Class B
public:
…
………..
};
c
Class C
{
};
c
Class D
{
Class A
В даному випадку клас С наслідує двом класам А та В.
Заняття №10
Тема: Створення \ знищення об'єктів
Мета: Освоїти поняття „час життя" об'єкта, „область видимості". Класи
пам'яті.
План заняття:
Поняття „час життя" об'єкта та „область видимості".
Класи пам'яті.
1. Поняття „час життя" об'єкта та „область видимості".
Автоматичні змінні визначенні всередині якоїсь функції або метода класу. Призначення автоматичних змінних - зберігання даних під час виконання функції чи методу. Після закінчення виконання цієї функції автоматичні змінні знищуються і дані втрачаються. Отже автоматичні змінні представляють собою тимчасові змінні.
Іноді тимчасове зберігання даних потрібне на більш короткий час, чим виконання функції. По-перше, оскільки С++ описання змінних на початку функції або методу не є обов'язковим, то змінну можна описати безпосередньо перед використанням. По-друге, змінну можна описати всередині блоку - групи операторів у фігурних дужках. При виході з блоку така змінна знищується ще до закінчення функції. Третім способом можливого тимчасового використання змінної є описання змінної в заголовку циклу for лише для ітерації циклу:
Якщо змінну, що описана всередині структури чи блоку, описати як статичну, то при виході із цього блоку знищуватися вона не буде, а буде зберігати своє значення між викликами функції. Однак при виході із відповідного блоку ця змінна стає недоступною, або ж іншими словами, невидимою для програми.
Область видимості імен.
Між іменами змінних, функцій, типів і т.п. при використанні одного і того ж імені в різних частинах програми можуть виникати конфлікти. Для
вирішення даної проблеми у мові програмування С++ існує поняття видимості імен.
Мінімальною областю видимості імен є блок. Імена описані у блоці мають різнитися. При спробі описання двох змінних з однаковими іменами виникне помилка. Імена, описані у блоці, видимі (доступні) в цьому блоці та у всіх вкладених блоках. Аргументи функції, описані в її заголовку, розглядаються як описані в тілі цієї функції.
Імена, описані в класі, видимі із середини цього класу, тобто в усіх його місцях. Для звернення до атрибуту класу, потрібно використовувати операції ".","->" або"::".
Для імен описаних поза межами блоків, областю видимості є весь текст файлу після опису імені.
Опис може перекривати таке ж саме ім'я, яке описане у зовнішній області
Область видимості.
Окрім значень і типу, змінні в С++ мають ще одну властивість - область видимості, тобто частину програми, в якій описана ця змінна.
Розглянемо наступний фрагмент коду:
// ця змінна доступна для усіх функцій
// та існує на протязі всього часу роботи програми
// (глобальна область видимості)
int intGlobal;
// змінна intChild доступна тільки у функції Child( )
// та існує лише під час виконання
// У функції Child( ) або викликана нею
// (область видимості функцій)
{
int intChild;
}
// Змінна intParent має область видимості функції
void parent(void)
{
int intParent = О; Child( );
int intLater = О;
intParent = intLater;
}
int main(int nArgs, char*pArgs[])
{
parent( );
}
Програма розпочинає виконувати функцію main( ). У першому ж рядку
main( ) викликає функцію parent( ). В цій функції відбувається виконання змінної intParent( ), що має область видимості, обмежену функцією. Така змінна має назву локальної і доступна лише в цій функції.
В другому рядку parent( ) викликається функція child( ). Ця функція також оголошує локальну змінну – intChild, областю видимості якої є функція child( ). При цьому intParent функції child( ) недоступна (і область видимості intParent не розповсюджується на функцію child( )), проте сама змінна продовжує існувати.
По закінченню роботи функції child( ) змінна intChild( ) виходить з області видимості і знищується, тобто вона перестає існувати (пам'ять, яку займала ця змінна вивільняється і додається у пул вільної пам'яті для подальшого використання).
Після повернення із функції child( ) продовжується виконання підпрограми parent( ), а в наступному рядку оголошується змінна intLater, область видимості якої обмежена функцією parent( ). В момент повернення у функцію main( ) змінні intLater і intParent виходять з області видимості і знищуються.
Окрім локальних змінних, програміст може оголошувати змінні поза межами функцій, такі змінні називаються глобальними і доступні із будь-якого місця програми (область видимості таких змінних - вся програма).Оскільки intGlobal у приведеному коді оголошена глобально, вона доступна на протязі роботи всієї програми із середини будь якої із трьох функцій.
Заняття №11