Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 2.5.4 Правила визначення конструкторів - Програмування С, С++теорія та практика (частина 2) - Studbook
Главная->Інформатика та програмування->Содержание->2.5.4 Правила визначення конструкторів

Програмування С, С++теорія та практика (частина 2)

2.5.4 Правила визначення конструкторів

Конструктор - спеціальна функція класу, що викликається автоматично для створення та ініціалізації екземпляру певного класу. Її основне призначення полягає у тому, щоб об’єкт отримав саме те значення, яке є допустимим для даного класу. Мається на увазі, що у класі визначається спеціальна функція, яку викличе програма у момент ініціалізації об’єкту (екземпляру). Відповідальність за її виклик покладається на компілятор - справа програміста лише визначити та

описати її з тим же ім’ям, що і сам клас. Наприклад, розглянемо фрагмент:

с1азз сгіето {

1опд соипї;

риЬ1іс:

сгіето() ;

Vоій. £ипс () ;

};

// визначення конструктора по замовчуванню сгіето: : сгіето ()

{

ргіпї£("Створення об'єкту сгіето");

соипї=0; // ініціалізація внутрішніх даних

}

Конструктор присвоює змінній соипі початкове значення та видає на екран повідомлення про створення об'єкту класу сіїето. При створенні об'єкту вказаного типу функція-конструктор буде викликана автоматично. Це найпримітивніший конструктор.

Існує декілька правил стосовно використання конструкторів:

1.       Конструктор не повертає значення, навіть типу уоіії. Неможливо отримати покажчик на конструктор.

2.       Клас може мати декілька конструкторів з різними параметрами для різних видів ініціалізації (при цьому використовується механізм перевантаження).

3.         Конструктор, що викликається без параметрів, називається конструктором по замовчанню.

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

5.       Конструктори не успадковуються.

6.       Конструктор не може бути оголошений як соті, уігіиаї, зіаііс або уоїаііїе.

7.       Конструктори глобальних об’єктів викликаються до виклику функції таіп(). Локальні об’єкти створюються, як тільки стає активною область їх дії. Конструктор запускається і при створенні тимчасового об’єкту (наприклад, при передачі об’єкта з функції).

8.      Локальні та статичні об'єкти створюються в порядку розміщення їх оголошень, статичні об'єкти - лише однин раз.

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

ім’я_класа ім’я_об’єкта [ список_параметрів ] ; ім’я_класа (список_параметрів); ім’я_класа ім’я_об’єкта = вираз;

10.  Конструктор не спроможний видати повідомлення про помилку під час ініціалізації, адже він не повертає значення. Для організації повідомлення про помилку з конструктора можна використовувати механізм обробки виняткових ситуацій.

 

24