Курсовая работа: Побудова і використання класів
};
Отже, клас – це тип, введений програмістом. Кожен тип служить для визначення об’єктів. Для описання об’єкта класу використовується конструкція:
ім’я_класу ім’я об’єкту;
В об’єкти (класу) входять дані (елементи), відповідні компонентам даних класу. Компонентні функції класу дозволяють обробляти дані конкретних об’єктів класу.
Визначення об’єктів класу передбачає виділення ділянки пам’яті та ділення цієї ділянки на фрагменти, відповідні окремим елементам об’єкта, кожен із котрих відображає окремий компонент даних класу.
Як тільки об’єкт є визначеним, з’являється можливість звертатися до його компонент, по-перше, за допомогою «кваліфікованих» імен, кожне з яких має формат:
ім’я_об’єкта.ім’я_класу::ім’я компоненту
Ім’я класу з операцію вказівки області дії «::» звичайно може не використовуватися та дуже часто для доступу к даним конкретного об’єкту заданого класу (як і у випадку структур) використовується уточнене ім’я:
ім’я_об’єкту.ім’я_елементу;
Інший спосіб доступу до елементів об’єкту деякого класу передбачає використання вказівника на об’єкт класу та операції непрямого вибору компонент («–>»):
вказівник_на_об’єкт_класу –> ім’я_елементу;
Вказівник на об’єкт класу дозволяє викликати функції, які належать до класу, для обробки даних того об’єкту, який адресується вказівником.
Для ініціалізації об’єктів класу в його визначення можна явно включати спеціальну компонентну функцію, яка називається конструктор. Формат визначення конструктора в тілі класу може бути таким:
ім’я_класу (список_формальних_параметрів) {оператори_тіла_конструктора};
Приклад конструктора для класу complex:
complex (double re = 0.0, double im = 0.0)
{
real = re;
imag = im;
}
Ім’я цієї компонентної функції за правилами мови С++ повинно збігатися з іменем класу. Така функція автоматично викликається при визначенні або розташуванні в пам’яті за допомогою оператора newкожного об’єкту класу.
Конструктор неможна викликати як звичайну компонентну функцію. Для явного виклику конструктора можна використати дві різні синтаксичні форми:
ім’я_класу ім’я об’єкту (фактичні_параметри_деструктора);
ім’я_класу (фактичні_параметри_деструктора);
Перша форма допускається тільки при непорожньому списку фактичних параметрів. Вона передбачає виклик конструктора при визначенні нового об’єкта даного класу:
complex ss(10.3, 0.22); //ss.real = 10.3;
//ss.imag = 0.22;
complex ee(2.345); //ee.real = 2.345;
//ee.imag = 0.0 (за замовченням)