Составители:
Рубрика:
54
{A a; B b;
a.x=5; //в классе А комп. данное х общедоступное
//b.x=1; ошибка!!! В классе B унаследованный от А компонент х – частный
}
Из последнего примера можно сделать вывод, что один и тот же компонент
класса в своем собственном классе и будучи унаследованным в производном клас-
се имеет различную область видимости: компонентное данное, определенное в
классе А как общедоступное, в классе В становится частным. Область видимости
компонент базового класса в производном при их наследовании
зависит от:
1) области видимости компонента в базовом классе;
2) способа определения производного класса (через class или struct);
3) спецификации доступа, указанной в списке базовых классов при объявле-
нии наследования.
Пояснения требует третий пункт: при объявлении списка наследования для
каждого базового класса можно указать спецификатор доступа в виде уже извест-
ных
нам ключевых слов public, protected, private. В этом случае список наследо-
вания может выглядеть, например, следующим образом:
class A: public B, private C, protected D
{…};
Правила, по которым изменяются области видимости компонент класса при
наследовании, приведены в таблице 1.
Таблица 1.
Изменение области видимости компонент базового класса в производном
Область видимости в производном
классе
Область видимо-
сти в базовом
классе
Спецификатор
доступа в списке
порождения
производный
класс объявлен
через struct
производный
класс объявлен
через class
p
ublic нет
p
ublic
p
rivate
p
ublic
p
ublic
p
ublic
p
ublic
p
ublic
p
rotected
p
rotected
p
rotected
p
ublic
p
rivate
p
rivate
p
rivate
p
rotected нет
p
ublic
p
rivate
p
rotected
p
ublic
p
rotected
p
rotected
{A a; B b; a.x=5; //в классе А комп. данное х общедоступное //b.x=1; ошибка!!! В классе B унаследованный от А компонент х – частный } Из последнего примера можно сделать вывод, что один и тот же компонент класса в своем собственном классе и будучи унаследованным в производном клас- се имеет различную область видимости: компонентное данное, определенное в классе А как общедоступное, в классе В становится частным. Область видимости компонент базового класса в производном при их наследовании зависит от: 1) области видимости компонента в базовом классе; 2) способа определения производного класса (через class или struct); 3) спецификации доступа, указанной в списке базовых классов при объявле- нии наследования. Пояснения требует третий пункт: при объявлении списка наследования для каждого базового класса можно указать спецификатор доступа в виде уже извест- ных нам ключевых слов public, protected, private. В этом случае список наследо- вания может выглядеть, например, следующим образом: class A: public B, private C, protected D {…}; Правила, по которым изменяются области видимости компонент класса при наследовании, приведены в таблице 1. Таблица 1. Изменение области видимости компонент базового класса в производном Область видимо- Спецификатор Область видимости в производном сти в базовом доступа в списке классе классе порождения производный производный класс объявлен класс объявлен через struct через class public нет public private public public public public public protected protected protected public private private private protected нет public private protected public protected protected 54
Страницы
- « первая
- ‹ предыдущая
- …
- 52
- 53
- 54
- 55
- 56
- …
- следующая ›
- последняя »