ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 9) онлайн
Выбор спецификатора доступа
Как же решить вопрос о том, какой из спецификаторов использовать при на- следовании? В большинстве случаев производный класс представляет собой улучшенную или более специализированную версию базового класса. Мы рас-
смотрели примеры таких производных классов (вспомните класс CountDn, добав- ляющий новую операцию к классу Counter, или класс manager, являющийся спе- циализированной версией класса employee). В случае, когда объект производного класса предоставляет доступ как к общим методам базового класса, так и к более специализированным методам своего класса, имеет смысл воспользоваться об- щим наследованием.
class A
Рис. 9.7. Частное и общее наследование
Однако в некоторых ситуациях производный класс создается для полной мо- дификации действий базового класса, скрывая или изменяя первоначальный его вид. Например, представим, что мы создали отличный класс Array, представля- ющий собой массив, который обеспечивает защиту против обращения к элемен- там, лежащим за пределами массива. Затем предположим, что мы хотим исполь- зовать класс Array как базовый для класса Stack вместо использования обычного массива. Создавая производный класс Stack, мы не хотим, чтобы с его объектами можно было работать как с массивами, например использовать операцию [ ] для доступа к элементам данных. Работа с объектами класса Stack должна быть орга- низована как со стеками, с использованием методов push() и pop(). Тогда мы маскируем класс Array под класс Stack. В этой ситуации частное наследование позволит нам скрыть все методы класса Array от доступа через объекты произ- водного класса Stack.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
Схожі підручники
- Загальні питання з курсу Соціологія (частина 1)
- Соціальне страхування. Навчальний посібник (частина 2)
- Преодоление духовного материализма (онлайн)
- Стан НПС та основні напрями природоохоронної політики Фінляндії управлінські, організаційні, економічні та юридичні аспекти
- Банківська Система основні теми
- ПИТАННЯ З КУРСУ «ВВЕДЕННЯ У ФІНАНСОВУ ДІЯЛЬНІСТЬ»