Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Раніше наведене оголошення класу CFrame дозволяє ініціалізувати змінні-члени об'єктів класу шляхом виклику програмою користувача функції-члена класу SetCoord().
В якості іншого, стандартного в об'єктно-орієнтованому програмуванні способу ініціалізації змінних-членів класу потрібно оголосити спеціальну функцію класу, звану конструктором. Конструктор автоматично викликається при створенні об'єкту класу. Він може ініціалізувати змінні класу і виконувати будь-які інші завдання ініціалізації, необхідні для підготовки об'єкту до використання.
Конструктор має таке ж ім'я, як і клас. При оголошенні конструктора не можна вказувати тип значення, що повертається, навіть void, оскільки конструктор ніколи не повертає значення. Проте він може приймати будь-яке число аргументів, включаючи аргументи за умовчанням.
Наприклад, наступний варіант класу CFrame містить конструктор, що приймає чотири аргументи для ініціалізації змінних-членів:
class CFrame
{
private:
int Left;
int Top;
int Right;
int Bottom;
public:
// конструктор:
CFrame (int L, int T, int R, int B)
{
SetCoord (L, T, R, B);
}
// визначення інших функцій-членів
};
Для створення об'єктів класу з використанням конструктора необхідно, щоб конструктор був функцією-членом, оголошеним розробником класу в розділі public.
При оголошенні об'єкту значення аргументів передаються конструктору з використанням синтаксису, подібного до звичайного виклику функції, наприклад:
CFrame Frm(25, 25, 100, 100);
Таке оголошення створює об'єкт класу CFrame, викликаючи конструктор класу і передаючи йому задані значення аргументів.
При створенні об'єкту класу в динамічній пам’яті значення аргументів можна передати конструктору, використовуючи оператор new:
CFrame *PFrm = new CFrame (25, 25, 100, 100);
Оператор new автоматично викликає конструктор для створеного ним об'єкту, що є важливою перевагою використання оператора new у порівнянні з іншими методами виділення пам'яті, наприклад, за допомогою виклику бібліотечної функції malloc().
Маючи конструктор, можна створити об'єкт класу CFrame і намалювати прямокутник за допомогою тільки двох операторів:
void main()
{
CFrame Frm (25, 25, 100, 100); // створення об'єкту і завдання
// розмірів прямокутника
Frm.Draw(); // малювання прямокутника
}
Дата публикования: 2014-11-03; Прочитано: 527 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!