TURBO PASCAL |
Новости
|
Динамические объектыВсе приведенные до сих пор объекты имели статические реали- зации типов объектов, которым в объявлении var присваивались име- на и которые размещались в сегменте данных или в стеке. var ASalaried: TSalaried; Примечание: Использование здесь слова "статический" не имеет отношения к статическим методам. Объекты могут размещаться в динамической памяти и ими можно манипулировать с помощью указателей, как и с тесно связанными с ними типами записей, что всегда имело место в Паскале. Турбо Пас- каль включает несколько мощных расширений для выполнения динами- ческого размещения и удаления объектов более легкими и более эф- фективными способами. Объекты могут размещаться, как области памяти, на которые ссылается указатель, с помощью процедуры New: var CurrentPay: Real; P: ^TSalaried; New(P); Как и для типов записей, процедура New выделяет в динамичес- кой памяти пространство, достаточное для размещения реализации указателя базового типа и возвращает адрес этого пространства в указателе. Если динамический объект содержит виртуальные методы, то он должен инициализироваться с помощью вызова конструктора перед тем, как будет вызван любой из его методов: P^.Init('Sara Adams', 'Account manager', 2400); Затем вызовы методов могут происходить в обычном порядке, с использованием имени указателя и ссылочного символа вместо имени реализации, которое использовалось бы при обращении к статически размещенному объекту: CurrentPay := P^.GetPayAmount; |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |