Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Виртуальные метода и полиморфизм.

Читайте также:
  1. Абстрактные базовые классы и чисто виртуальные функции
  2. Абстрактные базовые классы и чисто виртуальные функции.
  3. Алгоритм симплекс-метода
  4. Алгоритм симплекс-метода решения общей задачи линейного программирования
  5. Б) Основы метода Н. М. Бернадского
  6. В зависимости от метода лит.-критической деятельности
  7. В настоящее время в Республике Беларусь действуют два метода

Атрибуты private, public, protected.

сlass имя_производного_класса: [ атрибут ] имя_базового_класса

{тело_произв_класса} [список объектов];

множественное наследование – возможность для некоторого класса наследовать компоненты нескольких никак не связанных между собой базовых классов. В иерархии классов соглашение относительно доступности компонентов класса следующие:

private – Член класса может использоваться только функциями- членами данного класса и функциями- “друзьями” своего класса. В производном классе он недоступен.(Модификатор private является атрибутом доступа по умолчанию. Он закрывает поля от всех других классов, разрешая прямой доступ к ним (чтение и запись) только методам самого класса. Помните, все поля всегда доступны всем методам класса. Они являются для методов класса глобальной информацией, с которой работают все методы, извлекая из полей нужные им данные и изменяя их значения в ходе работы.)

protected – То же, что и private, но дополнительно член класса с данным атрибутом доступа может использоваться функциями- членами и функциями- “друзьями” классов, производных от данного

public – Член класса может использоваться любой функцией, которая является членом данного или производного класса, а также к public - членам возможен доступ извне через имя объекта.

Следует иметь в виду, что объявление friend не является атрибутом доступа и не наследуется.

 

Виртуальные метода и полиморфизм.

В С++ виртуальные функции позволяют использовать полиморфизм классов. Так как виртуальные функции могут использоваться только внутри классов, то иногда их называют виртуальными методами.

 

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

Полиморфизм представляет собой способность объекта изменять форму во время выполнения программы. В этом уроке рассмотрены шаги, которые вам необходимо выполнить для создания полиморфных объектов. Из урока 39 вы узнаете, как использовать исключительные ситуации в C++ для обеспечения надежности вашей программы.

Виртуальные функции нужны в C++ для поддержки полиморфизма. Полиморфизм позволяет использовать одинаковый синтаксис для разных классов

2. Виртуальные методы и полиморфизм.
В общем случае полиморфизм представляет способность объекта изменять форму.
Полиморфизм – возможность замещения метода объекта-родителя одноименными методами объекта-потомка.
При работе с объектами довольно типичной является ситуация, когда сложный метод приходится создавать заново для каждого типа объекта, хотя различия в поведении объектов могут быть небольшими.

В этом случае обычно создается общий сложный метод, а различия вносятся в сменные подчиненные методы.

Реализация такого подхода осуществляется с помощью виртуальных подчиненных методов. С этой целью после заголовка каждого сменного метода требуется написать virtual. Заголовки виртуальных методов предка и потомка должны в точности совпадать, причем оба метода должны быть виртуальными.
Полиморфизм в С++ реализуется не только через виртуальные методы, но и через механизм перегрузки: внутри класса допускается существование нескольких функций с одинаковым именем, но различающимися типами результатов и наборами формальных параметров.

 


Дата добавления: 2015-11-14; просмотров: 43 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ВОЗВРАЩЕНИЕ ДОМОЙ| Заголовочный файл

mybiblioteka.su - 2015-2024 год. (0.005 сек.)