TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

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

Странности

FAQ

Ссылки

Форум

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

Рассылка

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

Об авторе

 

 

Динамические объекты 

             Все приведенные до сих пор объекты имели статические  реали-
        зации типов объектов, которым в объявлении var присваивались име-
        на и которые размещались в сегменте данных или в стеке.

             var
               ASalaried: TSalaried;

                  Примечание: Использование  здесь слова "статический" не
              имеет отношения к статическим методам.

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

             Объекты могут  размещаться,  как области памяти,  на которые
        ссылается указатель, с помощью процедуры New:

             var
               CurrentPay: Real;
               P: ^TSalaried;

             New(P);

             Как и для типов записей, процедура New выделяет в динамичес-
        кой  памяти  пространство,  достаточное для размещения реализации
        указателя базового типа и возвращает адрес этого  пространства  в
        указателе.

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

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

             Затем вызовы методов могут происходить в обычном порядке,  с
        использованием имени указателя и ссылочного символа вместо  имени
        реализации,  которое использовалось бы при обращении к статически
        размещенному объекту:

             CurrentPay := P^.GetPayAmount;

Содержание

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

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

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

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

Hosted by uCoz