"Адское" программирование Ada-95 -Компилятор GNAT

         

Вызов переопределенной операции предка



Вызов переопределенной операции предка

Достаточно часто, реализация примитивной операции производного типа нуждается в вызове переопределенной примитивной операции предка.Предположим, что для типов Root и Child_1 существуют описания операции Display имеющие следующий вид:

. . . procedure Display (Self: in Root); procedure Display (Self: in Child_1); . . .

Поскольку такие операции совмещены, то можно сказать, что реализация операции Display типа Root (предка для типа Child_1) является "затененной", в виду переопределения реализации в производном типе Child_1.

В таком случае, для вызова "затененной" операции предка можно использовать следующее:

procedure Display (Self: in Child_1) is

begin Display ( Root(Self) ); -- вызов "затененной" операции предка . . . end Display;

Здесь, для вызова "затененной" реализации операции предка, используется явное преобразование представления параметра Self к типу Root.За счет этого, в подобных случаях, всегда осуществляется статическое связывание, а также отсутствует опасность получения бесконечного рекурсивного вызова.



Содержание раздела








Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий