Объектно-ориентированное программирование на языке С++. Ноткин А.М. - 17 стр.

UptoLike

Составители: 

18
Наследуемые компоненты не перемещаются в производный класс, а
остаются в базовых классах.
В иерархии производный объект наследует разрешенные для насле-
дования компоненты всех базовых объектов (public, protected).
Допускается множественное наследованиевозможность для неко-
торого класса наследовать компоненты нескольких никак не связанных
между собой базовых классов. В иерархии классов соглашение относи-
тельно
доступности компонентов класса следующее:
private член класса может использоваться только функциями
членами данного класса и функциями – “друзьями своего класса. В про-
изводном классе он недоступен.
protectedто же, что и private, но дополнительно член класса с дан-
ным атрибутом доступа может использоваться функциями-членами и
функциями – “друзьямиклассов, производных от данного
.
publicчлен класса может использоваться любой функцией, которая
является членом данного или производного класса, а также к public - чле-
нам возможен доступ извне через имя объекта.
Следует иметь в виду, что объявление friend не является атрибутом
доступа и не наследуется.
Синтаксис определения производного класса:
class имя_класса : список_базовых_классов
{список_
компонентов_класса};
В производном классе унаследованные компоненты получают статус
доступа private, если новый класс определен с помощью ключевого слова
class, и статус public, если с помощью struct.
Явно изменить умалчиваемый статус доступа при наследовании
можно с помощью атрибутов доступаprivate, protected и public, которые
указываются непосредственно перед именами базовых классов.
Конструкторы и
деструкторы производных классов.
Поскольку конструкторы не наследуются, при создании производно-
го класса наследуемые им данные-члены должны инициализироваться
конструктором базового класса. Конструктор базового класса вызывается
автоматически и выполняется до конструктора производного класса. Па-
раметры конструктора базового класса указываются в определении конст-
руктора производного класса. Таким образом происходит передача аргу-
ментов от
конструктора производного класса конструктору базового
класса.
Например.
class Basis
{ int a,b;
                                    18

       Наследуемые компоненты не перемещаются в производный класс, а
остаются в базовых классах.
       В иерархии производный объект наследует разрешенные для насле-
дования компоненты всех базовых объектов (public, protected).
       Допускается множественное наследование – возможность для неко-
торого класса наследовать компоненты нескольких никак не связанных
между собой базовых классов. В иерархии классов соглашение относи-
тельно доступности компонентов класса следующее:
       private – член класса может использоваться только функциями –
членами данного класса и функциями – “друзьями” своего класса. В про-
изводном классе он недоступен.
       protected – то же, что и private, но дополнительно член класса с дан-
ным атрибутом доступа может использоваться функциями-членами и
функциями – “друзьями” классов, производных от данного.
       public – член класса может использоваться любой функцией, которая
является членом данного или производного класса, а также к public - чле-
нам возможен доступ извне через имя объекта.
       Следует иметь в виду, что объявление friend не является атрибутом
доступа и не наследуется.
       Синтаксис определения производного класса:
       class имя_класса : список_базовых_классов
       {список_компонентов_класса};
       В производном классе унаследованные компоненты получают статус
доступа private, если новый класс определен с помощью ключевого слова
class, и статус public, если с помощью struct.
       Явно изменить умалчиваемый статус доступа при наследовании
можно с помощью атрибутов доступа – private, protected и public, которые
указываются непосредственно перед именами базовых классов.

      Конструкторы и деструкторы производных классов.
      Поскольку конструкторы не наследуются, при создании производно-
го класса наследуемые им данные-члены должны инициализироваться
конструктором базового класса. Конструктор базового класса вызывается
автоматически и выполняется до конструктора производного класса. Па-
раметры конструктора базового класса указываются в определении конст-
руктора производного класса. Таким образом происходит передача аргу-
ментов от конструктора производного класса конструктору базового
класса.
      Например.
      class Basis
      { int a,b;