- •Концепція об’єктно-орієнтованого програмування
- •Класи та об’екти
- •Анатомія класу
- •Рівні доступу до членів класу
- •Методи класу всередині визначення класу
- •Визначення об’єктів
- •Виклик методів класу
- •Конструктори
- •Списки ініціалізаторів
- •Деструктори
- •Члени-дані
- •Функції-члени
- •Принцип успадкування
- •If (умова_істинна)
- •3. Цикл do while (з післяумовою)
Функції-члени
Функції-члени класу – це функції, що належать вашому класу. Вони є локальними по відношенню до класу, в якому визначені, й не існують поза класом. Функції-члени можуть бути викликані лише зсередини класу чи через екземпляр класу. Вони мають доступ до всіх відкритих, захищених та закритих членів-даних свого класу. Функції-члени можуть бути оголошені в розділах private, public чи protected.
Відкриті функції-члени являють собою інтерфейс між користувачем й класом. Саме через відкриті функції користувач класу отримує доступ до тих можливостей, які надає клас.
Наприклад, у вас є клас для запису та відтворення звуку. В цьому класі відкритими можуть бути функції типу Open(), Play(), Record(), Save() й т.д.
Закриті функції-члени призначені лише для використання самим класом. Вони скриті від зовнішнього світу.
Захищені функції-члени – це функції, доступні тільки для тих класів, які є похідними даного класу. Доступ ззовні до цих функцій неможливий.
Класи в C++ Builder
C++ Builder сам виконує значну кількість роботи з генерації програмного коду. C++ Builder вже має готову бібліотеку класів (бібліотеку візуальних компонентів VCL), які підтримують форму та різноманітні її компоненти.
Наприклад, клас TForm підтримує мінімальну форму в додатку C++ Builder. Коли ви створюєте новий проект, C++ Builder автоматично оголошує для підтримки головної форми проекту клас TForm1, як похідний від класу TForm.
Розглянемо фрагмент коду певного проекту, згенерований C++ Builder у відповідь на дії користувача:
|
class TForm1 : public TForm { __published: // IDE-managed Components TButton *Button1; TEdit *Edit1; TBevel *Bevel1; TBitBtn *BitBtn1; TLabel *Item1; TLabel *Item2; void __fastcall FormCreate(TObject *Sender); void __fastcall Button1Click(TObject *Sender); void __fastcall BitBtn1Click(TObject *Sender); void __fastcall Edit1KeyPress(TObject *Sender, char &Key); void __fastcall Edit2KeyPress(TObject *Sender, char &Key); void __fastcall Edit1Exit(TObject *Sender); void __fastcall Edit1Enter(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; |
Як ви бачите, форма – це приклад класу. Вона має базовий клас (TForm), певну кількість полів (6) та функцій обробки подій (7).
Зверніть увагу на розділ __published в класі TForm1. Ключове слово __published не є частиною стандартного С++, а додане розробниками Borland С++ Builder. Розділ __published використовується середовищем С++ Builder при взаємодії з компонентами. Ви не повинні вносити ніяких змін в цей розділ.
Поліморфізм - це використання одного і того самого коду для даних різніх обьектів…
Інкапсуляція — одна з трьох основних концепцій об'єктно-орієнтованого програмування і дизайну. Мається на увазі, що об’єкт вміщує не тільки дані, але і правила їх обробки, оформлені в вигляді виконуваних фрагментів. А також те, що доступ до стану об'єкта напряму забороняється, і ззовні можна взаємодіяти з об'єктом тільки через заданий інтерфейс, що дозволяє знизити зв'язність.
Приклад на С++
class Point {
int x,y;
boolean visible;
void create (int a, int b) {
x=a; y=b;
visible = false;
}
void switchOn(){
visible = true;
}
int getX() {
return x;
}
}
В даному прикладі такими правилами можуть бути, наприклад, операція створення точки (установка значень координат), а також операції “ввімкнення” і “вимкнення” точки та переміщення її в інше місце екрану.
успадкува́ння — метод утворення нових класів на основі використання вже існуючих.
