TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

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

Странности

FAQ

Ссылки

Форум

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

Рассылка

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

Об авторе

 

 

Размещение и инициализация с помощью процедуры New 

             Borland Pascal расширяет синтаксис процедуры New,  что явля-
        ется более компактным и более удобным средством выделения  прост-
        ранства для объекта в динамически распределяемой области памяти и
        инициализации объекта с помощью  только  одной  операции.  Теперь
        процедура New может вызываться с двумя параметрами: имя указателя
        используется в качестве первого параметра, а вызов конструктора -
        в качестве второго параметра:

             New(P, Init('Sara Adams', 'Account manager', 2400));

             Если для  процедуры  New используется расширенный синтаксис,
        то конструктор Init действительно выполняет динамическое размеще-
        ние,  используя специальный код входа, сгенерированного как часть
        компиляции конструктора.  Имя реализации не может  предшествовать
        Init,  т.к.  в то время, когда процедура New вызвана, реализация,
        инициализируемая с помощью Init,  еще не  существует.  Компилятор
        идентифицирует  правильный вызываемый метод Init посредством типа
        указателя, пересылаемого в качестве первого параметра.

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

             tyрe
             PSalaried = ^TSalaried;

             var
                P: PSalaried;
                P := New(PSalaried);

             Обратите внимание,  что в данной версии функциональная форма
        расширения  процедуры  New  применима ко всем типам данных,  а не
        только к типам объектов.

             Функциональная форма New, как и процедурная форма, также мо-
        жет  воспринимать  конструктор объектного типа в качестве второго
        параметра:

             P := New(PSalaried, Init('Sara Adams',
                                             'Account manager', 2400));

             В Borland  Pascal осуществлено также параллельное расширение
        процедуры Disрose, это подробно обсуждается в следующем разделе.

                   Примечание: Новая стандартная процедура  Fail  поможет
              вам  в  конструкторах  выполнить  восстановление при ошибке
              (см. Главу 9 в "Руководстве по языку").

Содержание

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

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

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

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

Hosted by uCoz