русс | укр

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

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


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


Список ініціалізації


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


Найчастіше на конструктор покладається задача ініціалізації полів об’єкту класу. Для кожного об’єкту класу Counter конструктор виконує ініціалізацію поля count нулем. Але це робиться не звичайним способом, наприклад:

Counter()

{count=0; }

Така форма запису не рекомендується, хоча вона й не містить помилок. Ініціалізація в нашому прикладі відбувається інакше:

Counter():count(0) //Конструктор

{ };

Ініціалізація розміщена між прототипом методу і тілом функції, перед нею проставлена двокрапка. Ініціалізуюче значення поміщене в лапках після імені поля.

Якщо необхідно ініціалізувати відразу кілька полів класу, то значення розділяють комами і в результаті виходить список ініціалізації

someClass(): m1(7), m2(33), m3(4);

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

 

Результати роботи програми з лічильником

Щоб переконатися. що конструктор викликається при кожному описі змінної об’єктного типу, дещо зміними вигляд конструктора:

Counter():count(0) //Конструктор

{cout << “constructor”<<endl; };

і запустимо програму на виконання. Фраза «constructor» з’явиться на екрані двічі.

 

Конструктори і власні типи даних

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

 


<== попередня лекція | наступна лекція ==>
Автоматична ініціалізація | Деструктори


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