TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Проверка диапазонов при вызове виртуальных методов 

             В процессе разработки программы вам, возможно, захочется по-
        высить меры безопасности,  которая снижается из-за вызовов вирту-
        альных методов Borland Pascal.  Если директива  $R  находится  во
        включенном  состоянии,  {$R+},  то все вызовы виртуальных методов
        будут проверяться на состояние инициализации для выполняющих  вы-
        зовы  реализаций.  Если  выполняющая вызов реализация еще не была
        инициализирована конструктором, то произойдет ошибка проверки ди-
        апазона исполняющей системы.

                  Примечание: Состоянием по умолчанию является {$R-}.

             После того, как вы хорошенько перетрясли программу и удосто-
        верились,  что отсутствуют вызовы методов из неинициализированных
        реализаций,  вы  можете  до некоторой степени ускорить выполнение
        программы путем переключения директивы $R в пассивное  состояние.
        После этого проверка вызовов методов из неинициализированных реа-
        лизаций осуществляться не будет, что оставляет вероятность блоки-
        ровки системы, если будет выявлена такая ошибка.

                    Виртуальный однажды - виртуальный всегда

             Вы уже  вероятно обратили внимание,  что как TWinged,  так и
        TBee содержат методы, называемые Show и Hide. Все заголовки мето-
        дов  для Show и Hide объявлены виртуальными и снабжены зарезерви-
        рованным словом virtual. Как только родительский тип объекта объ-
        являет  метод виртуальным,  все его потомки также должны объявить
        этот метод виртуальным. Другими словами, статический метод никог-
        да  не сможет переопределить виртуальный метод.  Если вы попытае-
        тесь сделать это, то компилятор выдаст сообщение об ошибке.

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

        ного  метода должны быть идентичными,  включая число параметров и
        их типы.  Это не относится к статическим методам: статический ме-
        тод, переопределяющий другой, может иметь отличное число парамет-
        ров и типы этих параметров, в зависимости от необходимости.

             Это целый новый мир.



Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz