Закрытое наследование - Большая Энциклопедия Нефти и Газа, статья, страница 1
Закон Вейлера: Для человека нет ничего невозможного, если ему не надо делать это самому. Законы Мерфи (еще...)

Закрытое наследование

Cтраница 1


Закрытое наследование позволяет PartsCatalog унаследовать функциональность базового класса и создавать интерфейс, косвенно открывающий доступ к его методам, которые нельзя вызывать напрямую.  [1]

При закрытом наследовании открытые и защищенные элементы базового класса становятся закрытыми элементами производного класса.  [2]

Не применяйте закрытое наследование, если необходимо использовать более одного объекта базового класса.  [3]

Первое, что необходимо знать: при закрытом наследовании все переменные и функции-члены базового класса трактуются так, как если бы они были объявлены закрытыми, независимо от установок доступа в базовом классе. Таким образом, для любой функции, не являющейся функцией-членом PartsCatalog, недоступны функции, унаследованные из PartsList. Это очень важно: закрытое наследование не передает в производный класс интерфейс базового класса.  [4]

Ответив на приведенные выше вопросы, вы должны принять решение, использовать ли вам в программе открытое наследование, закрытое наследование ( см. далее в этом занятии) или вложение.  [5]

Однако, поскольку PartsCatalog не является объектом PartsList и нежелательно предоставлять весь набор функциональных возможностей PartsList клиентам PartsCatalof, следует применить закрытое наследование.  [6]

Напомним, что открытое наследования определяет производный класс как уточнение базового класса; вложение подразумевает обладание одним классом объектами другого класса, а закрытое наследование состоит в выполнении одного класса средствами другого класса. Делегирование ответственности реализуется либо вложением, либо закрытым наследованием, хотя первое предпочтительнее.  [7]

При порождении класса из базового класса этот базовый класс может наследоваться как public, protected или private. Защищенное и закрытое наследования встречаются редко и каждое из них нужно использовать с большой осторожностью; в этой книге мы используем только открытое наследование.  [8]

Используйте вложение классов, когда необходимо делегировать выполнение задач другому классу, ограничив при этом доступ к его защищенным членам. Применяйте закрытое наследование, если необходимо реализовать один класс в пределах другого и обеспечить доступ к защищенным членам базового класса.  [9]

10 Сводка доступности элементов базового класса в производном классе. [10]

При защищенном наследовании открытые и защищенные элементы базового класса становятся защищенными элементами производного класса. При закрытом наследовании открытые и защищенные элементы базового класса становятся закрытыми элементами производного класса. При закрытом и защищенном наследованиях не справедливо отношение, что объект производного класса является объектом базового класса.  [11]

Напомним, что открытое наследования определяет производный класс как уточнение базового класса; вложение подразумевает обладание одним классом объектами другого класса, а закрытое наследование состоит в выполнении одного класса средствами другого класса. Делегирование ответственности реализуется либо вложением, либо закрытым наследованием, хотя первое предпочтительнее.  [12]

В случае положительного ответа имеет смысл воспользоваться открытым или закрытым наследованием.  [13]

Первое, что необходимо знать: при закрытом наследовании все переменные и функции-члены базового класса трактуются так, как если бы они были объявлены закрытыми, независимо от установок доступа в базовом классе. Таким образом, для любой функции, не являющейся функцией-членом PartsCatalog, недоступны функции, унаследованные из PartsList. Это очень важно: закрытое наследование не передает в производный класс интерфейс базового класса.  [14]

Вложение гораздо проще в использовании, чем закрытое наследование, поэтому по возможности следует применять этот подход.  [15]



Страницы:      1    2