- •1. Історія розвитку мов програмування.
- •2. Структурне та об'єктно - орієнтоване програмування.
- •Процедурне програмування
- •Тема: Об'єктно — орієнтований підхід у програмуванні.
- •Суть об'єктно - орієнтовного підходу до програмування.
- •Особливості та переваги об'єктно - орієнтованого програмування.
- •Базові поняття та терміни
- •Наслідування, інкапсуляція та поліморфізм.
- •Заняття №3.
- •Написання програми.
- •2. Базові типи та описи даних.
- •Цілі числа
- •1. Основні поняття припроцесорної обробки. Компонування декількох файлів в одну програму
- •2. Припроцесорні змінні
- •3. Макровизначення (макроси).
- •4. Умовна компіляція
- •Заняття №5 Тема: Специфікація, об'єктів на основі абстрагування
- •1. Поняття класу об'єктів.
- •Формат класу.
- •Звернення до членів класу
- •Заняття №6 Тема: Ідентифікація об'єктів.
- •1. Ідентифікація назвою.
- •2. Область доступу ідентифікаторів
- •3. Опис об'єкту: інтерфейс і реалізація.
- •Тип адрес.
- •5. Ідентифікація вказівником.
- •6. Посилання
- •Віртуальні функції.
- •„Дружні" функції.
- •Тема: Інтерпретація об'єктів.
- •1. Поліморфізм
- •Тема: Інтерпретація об'єктів (заняття 2)
- •Наслідування властивостей.
- •Множинне наслідування.
- •1. Поняття „час життя" об'єкта та „область видимості".
- •Область видимості імен.
- •Тема: Динамічні структури об'єктів
- •1. Зв'язана організація пам'яті.
- •2. Асоціативні структури.
- •3. Списки. Черги. Рекурсивні структури. Набори. Дерева.
- •Тема: Процеси в об'єктах. Інкапсуляція
- •Логічний паралелізм. Схема сопрограм
- •Список використаної літератури
Формат класу.
Клас, який описує об'єкт, що може містити ім'я та середній бал можна записати так;
// Клас dataset
class Student
{
private:
float serBall; public:
char firstName[128];
char lastName[128];
};
\\ екземпляр класу dataset
Student nds;
Оголошення класу починається з ключового слова class, після якого іде ім’я класу та пара фігурних дужок , які відкривають і закривають тіло класу.
Можна використовувати альтернативне ключове слово struct, яке повністю ідентичне class, з використанням оголошення public.
Після ключового слова public відбувається опис полів класу. У даному прикладі клас Student поля ім’я, прізвище та середній бал.
Звернення до членів класу
Звернутися до членів класу можна так:
Student nds;
nds. serBall = 3.8;
cin >> nds. firstName;
cin >> nds. lastName;
Тут nds – екземпляр класу Student (або окремий об’єкт типу Student).
Заняття №6 Тема: Ідентифікація об'єктів.
Мета: Ознайомлення з способами ідентифікації об'єкта. Областю дії ідентифікаторів. Описом об'єкту: інтерфейсом і реалізацією. Ідентифікацією показником.
План заняття:
Ідентифікація назвою. Квалідент.
Області доступу ідентифікаторів Індексування.
Опис об'єкту: інтерфейс і реалізація.
Тип адрес.
Ідентифікація показником.
Посилання.
Вільний і обмежений показники.
Показники і посилання.
1. Ідентифікація назвою.
Існує два основні способи ідентифікації об'єкта:
іменування
використовуючи вказівник.
Іменування полягає в призначенні об'єкту певного імені. Приклад:
{
…………опис полів…………
};
\\ екземпляр класу Student Student nds; \\ іменування
Квалідент.
Іменуватися можуть і окремі властивості об'єктів. В цьому випадку такі імена називають кваліфікованими ідентифікаторами - квалідентами, вони реалізують область доступу до властивостей об'єкта.
2. Область доступу ідентифікаторів
Кожен програмний об'єкт має область дії, яка визначається виглядом і місцем його оголошення. Існують наступні області доступу: блок, файл, клас.
Блок. Ідентифікатори, описані усередині блоку, є локальними. Область доступу ідентифікатора починається в точці визначення і закінчується в кінці блоку, видимість — в межах блоку і внутрішніх блоків, час життя — локальний. Після виходу з блоку пам'ять звільняється.
Файл. Ідентифікатори, описані поза будь-яким блоком, функцією, класом або простором імен, мають глобальну видимість і час життя та можуть використовуватися з моменту їх визначення.
Клас. Елементи структур, об'єднань і класів (за винятком статичних елементів) є видимими лише в межах класу. Вони утворюються при створенні змінної вказаного типа і руйнуються при ії знищенні.
Область видимості співпадає з областю доступу за винятком ситуації, коли у вкладеному блоці описана змінна з таким же ім'ям. В цьому випадку зовнішня змінна у вкладеному блоці невидима, хоча він і входить в її область дії. Проте до цієї змінної, якщо вона глобальна, можна звернутися, використовуючи операцію доступу до області видимості ::. Спосіб звернутися до прихованої локальної змінної відсутній.
У кожній області доступу розрізняють так звані простори імен. Простір імен — область, в межах якої ідентифікатор повинен бути унікальним. У різних просторах імена можуть співпадати, оскільки дозвіл посилань здійснюється по контексту ідентифікатора в програмі, наприклад:
struct Node{
int Node;
int і;
} Node;
В даному випадку суперечності немає, оскільки імена типу, змінної і елементу структури відносяться до різних просторів. У С++ визначено чотири роздільні класи ідентифікаторів.
До одного простору імен відносяться імена змінних, функцій, типів, визначених користувачем (typedef) і констант переліків в межах однієї області видимості. Всі вони, окрім імен функцій, можуть бути перевизначені у вкладених блоках.
Інший клас імен утворюють імена типів переліків, структур, класів і об'єднань. Кожне ім'я повинне відрізнятися від імен інших типів в тій же області видимості.
Окремий клас складають елементи кожної структури, класу і об'єднання. Ім'я елементу повинне бути унікально усередині структури, але може співпадати з іменами елементів інших структур.
Індексування
При роботі з масивами об'єктів ідентифікація здійснюється на основі індексування (нумерації). Індекс визначає порядковий номер об'єкта і виконує роль уточненого імені. Імена, уточнені індексом, як і раніше залишаються іменами (у цьому сенсі індекс можна формально розглядати як "особливу літеру" в символьному рядку, створюючому ім'я).
