русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Автоматична ініціалізація


Дата додавання: 2014-04-22; переглядів: 860.


Коли створюється об’єкт типу Counter, хотілося б, щоб його поле count було ініціалізоване нульовим значенням, оскільки більшість лічильників починає свій відлік саме з нуля. Ми могли б провести ініціалізація за допомогою функції set_count() з аргументом, рівним 0, чи створити спеціальний метод zero_count, який обнулює значення функції. Недолік такого підходу полягає в тому, що ці функції необхідно викликати явно кожен раз при створенні об’єктів типу Counter:

Counter c1;

c1.zero_count();

Подібні дії легко можуть спричинити неправильну роботу всієї програми, оскільки програмісту для цього достатньо забути проініціалізувати хоч одну змінну після її створення. Якщо в програмі створюється багато таких змінних, значно простіше і надійніше було б ініціалізувати їх відразу ж після створення. В програмі 9.4 цю дію виконує конструктор Counter(). Конструктор викликається автоматично при створенні кожного з об’єктів. Таким чином, в функції main() оператор

Counter c1,c2;

створює два об’єкти типу Counter. При створенні кожного з них викликається конструктор Counter(), що присвоює полю сount нульове значення. Таким чином, крім створення змінних, даний оператор ще й присвоює їх полям початкове (нульове) значення.

 

Ім’я конструктора

В конструктора є кілька особливостей, що відрізняють його від інших методів класу. По-перше, ім’я конструктора точно співпадає з іменем класу. Таким чином, компілятор відрізняє конструктори від інших методів класу. По-друге, конструктор не повертає ніякого значення. Це пояснюється тим, що конструктор автоматично викликається системою і, отже, не існує викликаючої програми чи функції, якій конструктор міг би повернути значення. відсутність типу повернутого значення у конструкторів є другою ознакою, за якою компілятор може відрізнити їх від інших методів класу.

 


<== попередня лекція | наступна лекція ==>
Конструктори | Список ініціалізації


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн