русс | укр

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

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


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


Конструктори


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


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

В якості прикладу конструктора створимо клас «лічильник». Лічильник – це засіб, призначений для збереження кількісної міри якої-небудь величини, що змінюється. Він може зберігати число звертань до файлу, число разів, коли користувач натиснув клавішу Enter, число клієнтів банку і т.д. Як правило, при настанні відповідної події лічильник збільшується на 1 (інкрементується). Звертання до лічильника відбувається, як правило, для того, щоб дізнатися про поточне значення величини Для вимірювання якої він призначений.

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

 

#include <iostream.h>

#include <conio.h>

#include <bios.h>

class Counter

{private:

unsigned int count;

public:

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

{ };

 

void inc_count()

{count++;}

 

int get_count()

{return count;}

};

int main()

{

clrscr();

Counter c1,c2; //визначення з ініціалізацією

cout << “\nc1=”<<c1.get_count(); //вивід

cout <<”\nc2=”<<c2.get_count();

c1.inc_count();//збільшення на 1

c2.inc_count();

c2.inc_count();

cout << “\nc1=”<<c1.get_count(); //вивід

cout <<”\nc2=”<<c2.get_count();

cout <<endl;

bioskey(0);

return 0;

}

Програма 9.4

Клас Counter містить єдине поле count типу unsigned int, оскільки значення лічильника не може бути від’ємним, і три методи: конструктор Counter(); inc_count(), що інкрементує поле count і get_count, що повертає значення лічильника.


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


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