Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ппвис 2 часть с++.doc
Скачиваний:
26
Добавлен:
01.03.2016
Размер:
265.22 Кб
Скачать

37. Наследование. Конструкторы и деструкторы.

Наследование - один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

Конструктор – наследуется, деструктор не наследуется.

Когда создается объект производного класса, может потребоваться инициализация, как собственных данных, так и инициализация тех, что он унаследовал.

При наличии конструкторов установка собственных данных производится через конструктор произвольно класса, взаимодействуют через конструктор базового класса.

Синтаксис:

[имя_произв.класса] ([список форм. парам.]) : [имя_баз.класса] [<список факт. парам.>]

{\\тело конструктора производного класса}

Особенности:

- на самом деле вызывается 2-функции конструктор базового и конструктор производного класса.

- в списке формальных параметров конструктора производного класса необходимо предусмотреть передачу данных для конструктора базового класса.

- в частном случае тело конструктора может отсутствовать.

- сначала вызывается конструктор производного класса, а затем базового.

- сначала выполняется конструктор базового класса, а затем производного.

38. Наследование. Видимость и доступ к членам базовых и производных классов.

Наследование - один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с инкапсуляцией, полиморфизмом и абстракцией), позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

При наследовании доступ регулироваться собственными спецификаторами каждого класса и модификаторов доступа наследования классов, которые могут изменить значение спецификаторов доступа классов.

  1. Внутри класса все видят всех (вызов на прямую).

  2. Снаружи есть 2-варианта доступа:

- через объект(public-члены)

- объект производного класса видит в базовом только public, если есть модификатор доступа +public Модификаторы доступа могут изменять видимость членов базового класса для объектов производного класса и для новых производных классов.

3) методы производного класса видят + и # члены (public и protected).

39. Статический (перегрузка операторов, функций, функций-членов, конструкторов) полиморфизм.

Полиморфи́зм — возможность объектов с одинаковой спецификацией иметь различную реализацию. Общность имеет внешнее и внутреннее выражение:

- внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именем методов и типами аргументов и их количеством);

- внутренняя общность — одинаковая функциональность методов.

Её можно описать интуитивно или выразить в виде строгих законов, правил, которым должны подчиняться методы. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).

+

#

-

+

+

#

-

#

#

#

-

-

-

-

-