Полиморфное поведение - Большая Энциклопедия Нефти и Газа, статья, страница 1
Земля в иллюминаторе! Земля в иллюминаторе! И как туда насыпалась она?!... Законы Мерфи (еще...)

Полиморфное поведение

Cтраница 1


Полиморфное поведение обеспечивается механизмом виртуальных функций. При вызове виртуальной функции через указатель ( или ссылку) на базовый класс С выбирает переопределенную функцию правильного производного класса, соответствующего объекту, на который ссылается указатель.  [1]

Подобное полиморфное поведение предоставляет программисту огромные возможности. В нескольких следующих разделах мы увидим примеры, которые демонстрируют, каким мощным средством являются полиморфизм и виртуальные функции.  [2]

Таким образом, возможна реализация полиморфного поведения объектов соверщенно различных классов.  [3]

4 Иерархия на основе абстрактного базового класса Employee ( часть 11 из 12.| Иерархия на основе абстрактного базового класса Employee ( часть 12 из 12. [4]

Это то, что мы должны сделать для реализации полиморфного поведения.  [5]

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

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

8 Определение функций-элементов класса HourlyWorker ( часть 10 из 12. [8]

Это действие мы должны выполнить обязательно, если хотим добиться полиморфного поведения.  [9]

Поскольку функция print объявлена в базовом классе как виртуальная, система вызывает функцию print объекта производного класса, как и положено при полиморфном поведении. Это обращение к функции является примером динамического связывания: функция вызывается через указатель базового класса, поэтому выбор того, какую функцию вызвать, откладывается до времени выполнения программы.  [10]

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

Это позволяет писать программы в довольно общем виде, не зависящем от конкретного типа объектов производных классов. Новые виды объектов могут обрабатываться той же самой программой, что делает программные системы расширяемыми. Полиморфизм позволяет устранить из программ сложную логику переключателей и сделать код более прямолинейным. Менеджер экрана игровой программы может, например, просто послать сообщение типа нарисовать каждому объекту в связанном списке визуальных объектов. Каждый объект знает, как себя нарисовать. В программу можно ввести новый объект, не модифицируя ее, если новый объект тоже умеет нарисовать себя. Такой способ программирования чаще всего используется при разработке чрезвычайно популярных сегодня графических интерфейсов пользователя. В главе рассматривается механизм реализации полиморфного поведения посредством виртуальных функций. Абстрактные классы полезны при создании наследуемого интерфейса для всей иерархии классов.  [12]



Страницы:      1