Оголошення

Оголошення похідного класу вводить новий тип. Оголошення похідного класу встановлює обмеження доступу private, protected або public для членів свого базового класу. За замовчуванням встановлюється private.

Private – відкриті й захищені члени базового класу в похідному класі стають закритими.

Protected – відкриті й захищені члени базового класу в похідному класі стають захищеними.

Public – відкриті та захищені члени базового класу в похідному класі стають відкритими й захищеними відповідно.

 

  Base Derived
private private private
protected protected
public public
protected private private
protected protected
public public
public private private
protected protected
public public

 

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

 

class PayPhone: public Phone

{

int centsDeposited;

public:

PayPhone(int area, int exchange, int line);

void GiveDialTone();

int AcceptCoins();

};

 

PayPhone booth(708, 533, 5444);

3. Функції-члени

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

 

Phone home(516, 555, 8858);

PayPhone booth(708, 533, 5444);

// ...

home.GiveDialTone(); // Phone::GiveDialTone();

booth.GiveDialTone(); // PayPhone::GiveDialTone();

 

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

 

void PayPhone::GiveDialTone()

{

// виконує щось особливе для PayPhone

Phone::GiveDialTone(); // виклик оригіналу

}