Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zvit.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.01 Mб
Скачать

Короткі теоретичні відомості Анатомія класу

Клас є описом того, як буде виглядати та вести себе його представник – екземпляр класу. Отже, клас можна представити як деякий шаблон, що визначає формат об’єкта класа.

Клас є типом даних. Він схожий на структуру. Клас, як і структура, являє собою набір даних та функцій, призначених для сумісного виконання певної задачі. Кажуть, що клас інкапсулює задачу. Класи мають наступні характерні елементи:

  • Засоби контролю доступу

  • Конструктори та деструктори

  • Члени-дані

  • Функції-члени

  • Спеціальний прихований покажчик з ім’ям this

Клас, як і структура, має бути попередньо оголошений. Оголошення класу зазвичай міститься в заголовному файлі. Для простих класів оголошення й визначення можуть бути розміщені в єдиному вихідному файлі програми. Проте при написанні реальних програм так не поступають. Як правило, для класу створюють окремий вихідний файл з ім’ям, близьким до імені класу, та розширенням .cpp. Заголовний файл для класу зазвичай має таке саме ім’я, що й вихідний файл, але з розширенням .h. Наприклад, якщо у вас є клас з ім’ям МyСlass, то вихідний файл слід назвати myclass.cpp, а заголовний - myclass.h.

Рівні доступу до членів класу

Ми говорили, що ключовою особливістю ООП є можливість приховування даних. В тому розумінні, що дані знаходяться всередині класу та захищені від несанкціонованого доступу функцій, розташованих поза класом.

Члени класів можуть мати три рівні доступу: закритий (private), відкритий (public) чи захищений (protected).

Рівні доступу до членів класу визначають спосіб роботи користувачів із класом. Програмуючи самостійно, ви можете бути як створювачем, так й їхнім користувачем.

Можна сказати, що структура є класом, всі члени якого відкриті. Фактично, це єдина відмінність структури від класу в С++. Структура може містити функції поряд із даними. Але структура не може використовувати модифікатори доступу, оскільки вона має тільки відкритий доступ.

Щоб зрозуміти роль рівнів доступу, перш за все необхідно розібратися в тому, як використовуються класи. Будь-який клас містить відкриту частину, до якої можливий доступ ззовні класу, та закриту частину. Закрита частина класу визначає його внутрішню реалізацію. В гарно спроектованому класі від користувача приховано все, що йому не потрібно знати.

Абстрактне представлення даних (data abstraction) – це закриття внутрішньої реалізації властивостей класу від погляду ззовні.

Абстрактне представлення даних дає користувачу можливість знати про клас рівно стільки, скільки необхідно, й запобігає від втручання туди, куди втручатися не слід.

Аналогія. Коли ви сідаєте в авто й повертаєте ключ запалювання, чи потрібно вам знати всі подробиці щодо роботи машини? Звичайно, ні. Ви хочете знати рівно стільки, скільки необхідно для безпечної поїздки. В цій аналогії кермо, педалі, ручка перемикання передач, спідометр і т. і. являють собою інтерфейс між водієм та авто. Водій знає, якими з цих елементів потрібно користуватися, щоб машина їхала туди, куди він хоче. Можна сказати, що двигун, трансмісія та електрообладнання авто приховані від погляду ззовні. Двигун буде працювати навіть в тому випадку, якщо ви ніколи не захочете відкрити капот. (Це робота СТО). Його будова – це деталі, які вам не потрібно знати. Вони скриті від вас. Уявіть, про яку кількість речей доведеться турбуватися, якщо слідкувати за всім, що відбувається в машині: чи правильно карбюратор готує суміш? Чи достатньо мастил у диференціалі? Чи вистачає напруги генератора? І т. д., і т. п. Кому це потрібно?

Таким самим чином в класах закритий доступ до внутрішніх деталей, щоб користувач міг не турбуватися про те, що відбувається „під капотом”. Внутрішня робота класу закрита, тоді як інтерфейс користувача є відкритим.

Захищений рівень доступу пояснити дещо складніше. До захищених членів класу, як і до закритих, користувач звертатися не може. Проте ці члени можуть бути доступні для класів, які є похідними даного класу.

В мові С++ є три ключові слова, що встановлюють рівні доступу. Це слова private, public та protected. Рівні доступу до членів класу встановлюються при оголошенні класу. Для оголошення класу слугує ключове слово class. Оголошення класу виглядає схожим на оголошення структури, але з додаванням модифікаторів доступу.

Предметна область БД Поля бази даних

„колекція компакт-дисків”

Інвентарний номер, назва, об’єм диску, тип, дата запису.

Лістинг програми: див. додаток 5А.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]