ВУЗ:
Составители:
Рубрика:
Объектно-ориентированное программирование на С++
при private -наследования
Класс первого
поколения
class A
{
public:
//открытые элементы
// класса первого
// поколения
void f();
. . .
};
Класс второго
поколения
class B : private A
{
. . .
};
// метод f() класса
//А стал private-
//методом класса В
Класс третьего поколения
class С : public B
{
. . .
};
// метод f() класса
А // можно вызывать
// только с помощью
// методов класса B
Схема изменения режима доступа к элементам базового класса
при protected-наследования
Класс первого
поколения
class A
{
public:
//открытые элементы
// класса первого
// поколения
void f();
. . .
};
Класс второго
поколения
class B : protected
A
{
. . .
};
// метод f() класса
// А стал
// protected-
// методом класса В
Класс третьего поколения
class С : public B
{
. . .
};
// метод f() класса А
// можно вызвать в
// классе С
Вернемся к определению классов Student и ContractStudent.
Как уже было сказано, производный класс содержит все данные и методы
базового класса и собственные элементы. Так, в класс
ContractStudent добавлены следующие новые элементы:
• структурные свойства: данные о плате за обучение (payment)
и о задолженности студента (credit);
• конструктор производного класса:
// прототип конструктора
95
Объектно-ориентированное программирование на С++
при private -наследования
Класс первого Класс второго Класс третьего поколения
поколения поколения
class A class B : private A class С : public B
{ { {
public: . . . . . .
//открытые элементы }; };
// класса первого
// поколения // метод f() класса // метод f() класса
void f(); //А стал private- А // можно вызывать
. . . //методом класса В // только с помощью
}; // методов класса B
Схема изменения режима доступа к элементам базового класса
при protected-наследования
Класс первого Класс второго Класс третьего поколения
поколения поколения
class A class B : protected class С : public B
{ A {
public: { . . .
//открытые элементы . . . };
// класса первого };
// поколения // метод f() класса А
void f(); // метод f() класса // можно вызвать в
. . . // А стал // классе С
}; // protected-
// методом класса В
Вернемся к определению классов Student и ContractStudent.
Как уже было сказано, производный класс содержит все данные и методы
базового класса и собственные элементы. Так, в класс
ContractStudent добавлены следующие новые элементы:
• структурные свойства: данные о плате за обучение (payment)
и о задолженности студента (credit);
• конструктор производного класса:
// прототип конструктора
95
Страницы
- « первая
- ‹ предыдущая
- …
- 93
- 94
- 95
- 96
- 97
- …
- следующая ›
- последняя »
