- •1. Історія розвитку мов програмування.
- •2. Структурне та об'єктно - орієнтоване програмування.
- •Процедурне програмування
- •Тема: Об'єктно — орієнтований підхід у програмуванні.
- •Суть об'єктно - орієнтовного підходу до програмування.
- •Особливості та переваги об'єктно - орієнтованого програмування.
- •Базові поняття та терміни
- •Наслідування, інкапсуляція та поліморфізм.
- •Заняття №3.
- •Написання програми.
- •2. Базові типи та описи даних.
- •Цілі числа
- •1. Основні поняття припроцесорної обробки. Компонування декількох файлів в одну програму
- •2. Припроцесорні змінні
- •3. Макровизначення (макроси).
- •4. Умовна компіляція
- •Заняття №5 Тема: Специфікація, об'єктів на основі абстрагування
- •1. Поняття класу об'єктів.
- •Формат класу.
- •Звернення до членів класу
- •Заняття №6 Тема: Ідентифікація об'єктів.
- •1. Ідентифікація назвою.
- •2. Область доступу ідентифікаторів
- •3. Опис об'єкту: інтерфейс і реалізація.
- •Тип адрес.
- •5. Ідентифікація вказівником.
- •6. Посилання
- •Віртуальні функції.
- •„Дружні" функції.
- •Тема: Інтерпретація об'єктів.
- •1. Поліморфізм
- •Тема: Інтерпретація об'єктів (заняття 2)
- •Наслідування властивостей.
- •Множинне наслідування.
- •1. Поняття „час життя" об'єкта та „область видимості".
- •Область видимості імен.
- •Тема: Динамічні структури об'єктів
- •1. Зв'язана організація пам'яті.
- •2. Асоціативні структури.
- •3. Списки. Черги. Рекурсивні структури. Набори. Дерева.
- •Тема: Процеси в об'єктах. Інкапсуляція
- •Логічний паралелізм. Схема сопрограм
- •Список використаної літератури
3. Опис об'єкту: інтерфейс і реалізація.
Основною характеристикою класу являється інтерфейс - перелік методів, з допомогою яких можна звернутись до об'єктів класу
Під час створення класу, тобто нового типу даних, слід добре продумати його інтерфейс - засіб роботи з класом, доступний програмістам які його використовують. Інтерфейс класу, що проектується повинен містити тільки
методи, а не поля даних. Поля даних повинні бути скритими (private). Це дає можливість в подальшому змінити реалізацію класу без змін в його інтерфейсі, а також регулювати доступ до полів класу з допомогою представлених методів.
Тип адрес.
Поняття адреси.
Для розв'язування специфічних для мови С++ задач (побудова графічних зображень і динамічних ефектів) потрібно знати не тільки значення деякої змінної, але і її адресу в оперативній пам'яті комп'ютера. Для визначення адреси даного у пам'яті є операція визначення адреси.
& < назва даного >
Приклад
ini а = 25;
сout << "Адреса змінної а = " << &а;
У результаті виконання цих команд на екрані одержимо.
Адреса змінної а = 0х
Адреси зображаються шіснадцятковими числами і під час кожного виконання програми можуть бути різними.
5. Ідентифікація вказівником.
Вказівник - другий основний спосіб ідентифікації об'єкту.
Вказівник - вказує на початок області оперативної пам'яті комп'ютера, де зберігається дане. Вказівники дають змогу оперувати не з іменем даних, а безпосередньо звертатись до областей пам'яті комп'ютера. Вказівники утворюють так:
< тип даного > *< назва вказівника >
Можна створювати вказівними на сталі, змінні, функції, інші вказівники тощо. Особливо ефективною є робота з вказівниками.
Приклад 1.
int *nomer;
float *rist, *prtA, *prtB;
Тут оголошено вказівник на цілий тип nomer і вказівники на дійсний тип rist, prtА, prtВ.
Надати значення вказівникам можна так:
< назва вказівника > = < адреса змінної >;
Приклад 2. Нехай у програмі оголошені змінні
int n = 10;
float stud1, stud2, stud3;
Тоді можна визначити вказівними на ці змінні:
nomer =&n;
rist = &stud1;
rist = &stud3;
Вказівники застосовують, зокрема, для надання значень змінним:
rist = &stud1;
*rist = 1.65;
Тут вказівник rist вказуватиме на адресу змінної stud1, а власне змінній stud1 буде присвоєно значення 1.65.
Вказівники на об'єкти працюють так само як і вказівники на прості типи даних.
class Student
{
public:
int Predm;
float serball;
};
int main ( )
{
Student s;
Student* pS; \\ Створюємо вказівник на об’єкт типу Student
pS = &s; \\ Заставляємо pS вказувати на об’єкт s
return 0;
}
Звернутись до члену serball об'єкту s з допомогою вказівника можна так:
………………………………………………….
(*pS). serball = 3.5;
..............................
Тут *рS вираховує об'єкт, на який вказує рS, а відповідно serball звертається до члену цього об'єкту.
Використання стрілок.
Для доступу до членів об'єкту С++ представляє більш зручніший оператор ->, таким чином, рS -> serball еквівалентне (*рS). serball.
6. Посилання
До даних можна звертатись за допомогою імен або посилань. Посилання слугує для надання ще одного імені (псевдоніма, синоніма) даному. Посилання утворюються так:
< тип даного > & < назва посилання > = <назва змінної>
Приклад
float &cina = suma;
В такому випадку посилання cina і змінна suma вказуватимуть на одну і ту саму адресу в пам'яті комп'ютера. Для посилань не резервується додаткова оперативна пам'ять.
У С++ можна утворювати посилання та дані а не на їхні типи. Значення посилання ініціалізується одразу під час його оголошення, тобто на етапі компіляції. У нашому випадку посилання cina проініціалізоване змінною suma. Отже, якщо suma = 11, то і значення посилання cina = 11.
Під час зміни значення посилання змінюється значення змінної, на яке це посилання вказує. Отже, якщо у програмі записати cina = 27, то зміна suma = 27.
Ідентифікація об'єктів через посилання відкриває можливості організації зв'язаних структур, що динамічно модифікуються.
Заняття №7
Тема: Обєктно – орієнтовані засоби С++.
Мета: Використання віртуальних функцій та функцій "друзів". Освоїти
використання статичних елементів классу та перегружених функцій.
План заняття:
Об'єктні типи дата.
Конструктори і деструктори.
Похідні класи. Приклад побудови системи класів.
Віртуальні функції.
„Дружні" функції.
Статистичні компоненти класу.
Пере визначення (перегрузка) операцій.
