Класи C (відео), PureCodeCpp

Починаючи вивчати класи, ми наблизилися до важливого етапу – вивченню об'єктно-орієнтованого програмування (ООП) в C++. Класи – досить велика тема. Тому я розіб'ю її на кілька частин. Таким чином, початківцям досить просто освоїти інформацію і розібратися з основами цієї теми.

У цьому уроці ми познайомимося з синтаксисом класів C++, зі специфікаторами доступу до членів (полів) класу (private таpublic ). Дізнаємося, що таке методи класу та як звертатися до членів класу із програми.

Класи C++ схожі на структури, але мають свої особливості та переваги. До цього в програмах ми визначали структури та функції окремо. У класах вони об'єднані в одне ціле, щоб до закритих даних класу могли звертатись лише функції цього класу. Мені сподобалася ілюстрація з книги Об'єктно-орієнтоване програмування в С++ Р. Лафорі

методи

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

Зараз напишемо та розберемо наступний код:

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

Щоб оголосити відкриті члени класу, потрібно застосувати ключове словоpublic. У цьому полі найчастіше знаходяться методи класу, які працюватимуть із приватними(закритими) даними. Публічні (відкриті) методи та інші члени класу доступні з будь-якої іншої частини коду/програми, у якій визначено клас. Іноді для роботи вам знадобиться оголосити публічний член класу або приватний спосіб.

Зверніть увагу до визначення методів класу. Ми не передаємо в них параметри. При цьому вносимо зміну до змінноїnumber і показуємо її на екран. Справа в тому, що члени та методи класу знаходяться в одній галузі видимості. І методи класу вільно звертаються до даних-членів класу.

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