русс | укр

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

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


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


Базовий і похідний класи


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


В програмах 9.4 і 10.1 ми працювали з класом Counter, який використовували в ролі лічильника. Він міг бути ініціалізованим нулем чи певним числом при використанні конструктора, збільшений методом operator++() і прочитаний за допомогою методу get_count().

Припустимо, що нам потрібний ще один додатковий метод для зменшення лічильника, при цьому ми не хочемо або не маємо змоги змінювати вихідний код класу. Використаємо успадковування для створення нового класу на базі Counter. Далі представлений лістінг програми 11.1, в якому з’явиться новий клас CountOn, що додає операцію зменшення до вихідного класу.

#include <iostream.h>

#include <conio.h>

#include <bios.h>

class Counter

{protected:

unsigned int count;

public:

Counter():count(0) //constructor

{ }

Counter (int c):count(c)

{ }

 

unsigned int get_count()

{return count;}

 

Counter operator++ ()

{return Counter(++count);

}

};

 

class CountOn:public Counter //похідний клас

{public:

Counter operator--()

{return Counter(--count);

}

};

////////////////////

int main()

{

clrscr();

CountOn c1;

cout <<"\nc1="<<c1.get_count();

++c1;++c1;++c1;

cout <<"\nc1="<<c1.get_count();

--c1;--c1;

cout <<"\nc1="<<c1.get_count();

cout <<endl;

bioskey(0);

return 0;

}

 

Програма 11.1

Програма починається з опису класу Count, який залишився майже незміненим. Операцію постфіксного збільшення ми заради простоти не розглядаємо.

 

Визначення похідного класу

Після опису класу Count в програмі визначений новий клас CountOn. Він включає в себе новий метод: operator—(), який зменшує лічильник. В той же час, новий клас успадковує всі можливості базисного класу: конструктор і методи.

В першому рядку опису класу CountOn вказується, що він є похідним від Counter

class CountOn:public Counter //похідний клас

 

Для цього використовується знак двокрапки (не плутати з подвійною двокрапкою операції глобального дозволу), після нього – слово public та ім’я базового класу Counter. Іншими словами, цей рядок повідомляє нам, що CountOn є спадкоємцем класу Counter.

 


<== попередня лекція | наступна лекція ==>
Курс лекцій | Доступ до базового класу


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