Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014_2015 / lect5_2_2015.pptx
Скачиваний:
12
Добавлен:
27.12.2015
Размер:
258.75 Кб
Скачать

Внутренний полиморфизм как элемент «отложенного»

программирования Следующ вариант полиморфизма – внутреннее прог-

раммирование базового и производного класса, т.е. вызова полиморфного метода в программном коде ба- зового класса. Пусть в базовом классе def виртуаль-ная ф- я G. Тогда в программном коде базового класса ее вызов G() по «короткому» имени в неявном виде происходит через указатель на объект этого класса, т.е. this->G() - необх, условие полиморфного вызова в С++. Если же объект базового класса является частью объекта производного класса, в котором будет пере-определен одноименный метод, то вызов этого метода должен произойти в производном классе - «отложен-ное» программирование класса A в классе B.

«Отложенное» программирование действительно имеет дело не только с разным временем написания кода, но и с разным временем его трансляции. К моменту реализации производного программный код базового класса может присутствовать в проекте во внутреннем представлении (в виде объектного модуля).

примеры «отложенного» программирования:

· нейтрализация ошибок, происходящих при вы- полнении кода базового класса. Эл-т отложен-ного программирования - принятие решения о спо-собе обработки возникшей ошибки: игнорирова-ние, завершение программы, исправл данных и т.п.

· доп условия, касающиеся возможности выполнения заданных действий в базовом классе. Производный класс сообщает базовому классу в наследуемом по-лиморфном методе о возможн выпол указан действ; · обработка событий в производном классе, кот. «от-

лавливаются» внутренними мех-мами базового клас-са - основа для реализации в С++ библиотек классов приложений, построенных на принципах событийного программирования (оконных и т.д). Программист соз-дает собственное оконное приложение разрабаты-вает производный класс от баз класса окна. При этом в баз классе имеются внутренние мех-мы, «отлавли-вающ» и обрабатыв все события, кот. касаются этого приложения. При их появлении баз класс вызывает соотв полиморфные методы в производном классе программир производн класса-написание набора обработчиков событ в контексте

производного класса.

Простые алгоритмы – взять составные части и

выстроить их в нужной последовательности. Составные части таких алгоритмов разнородны, а процесс их выполнения можно отследить «исторически». Однако есть и другие подходы

проектированию, кроме образной очевидности:

алгоритмы, последовательно приближающиеся к заданной цели;алгоритмы, в которых поиск решения сводится к

формулировке одной или нескольких задач меньшей

размерности;

алгоритмы, соблюдающие установленные для них

соотношения (свойства, «законы», инварианты);

Соответственно, меняется и технология их

разработки: правильно свести задачу к аналогичной.

Очевидность и наблюдаемость логическая

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

Соседние файлы в папке 2014_2015