69723

Захищене наслідування

Лекция

Информатика, кибернетика и программирование

До базового класу можна застосовувати механізм захищеного наслідування. При цьому всі відкриті і захищені члени базового класу стають захищеними членами похідного класу. Розглянемо приклад.

Украинкский

2014-10-09

23.5 KB

0 чел.

Тема 1: Захищене наслідування

До базового класу можна застосовувати механізм захищеного наслідування. При цьому всі відкриті і захищені члени базового класу стають захищеними членами похідного класу. Розглянемо приклад.

#include <iostream>

using namespace std;

class base {

protected:

int i, j; // Закриті члени класу base

// доступні класу derived.

public:

void setij(int а, int b) { i=a; j=b; }

void showij() { cout « i « " " « j « "\n"; }

};

class derived : protected base {

int k;

public:

//Клас derived має доступ до членів i, j і setij()

// з класу base

void setk() { setijd(10, 12); до = i*j; }

// Звідси можна викликати функцію showij().

void showall() { cout << k « " "; showij(); }

};

int main() {

derived ob;

ob.setij (2, 3);

// Невірно, функція setij() є закритим членом класу derived.

ob.setk();

// Вірно, викликається відкритий член класу derived.

ob.showall();

// Вірно, викликається відкритий член класу derived.

//ob.showij () ; // Невірно, функція showij() є

// захищеним членом класу derived

return 0;

}

Як випливає з коментарів, не дивлячись на те що функції setij() і showij() є відкритими членами класу base, в класі derived, утвореному за допомогою захищеного наслідування, вони стають захищеними. Це означає, що функції main() вони не доступні.


 

А также другие работы, которые могут Вас заинтересовать

62171. «Планета заболела!» (Я и Украина) 22.71 KB
  Учитель в начале урока даёт установку на предстоящую деятельность. Учитель говорит вступительное слово и тем самым приковывает к себе всё внимание детей. Учитель умеет распределять своё внимание на уроке.