Категория
Информатика
Тип
реферат
Страницы
2 стр.
Дата
19.04.2013
Формат файла
.html — Html-документ
Архив
416922.zip — 2.45 kb
  • dinamicheskie-obekty-turbopacal_416922_1.html — 5.93 Kb
  • Readme_docus.me.txt — 125 Bytes
Оцените работу
Хорошо  или  Плохо


Текст работы

ДИНАМИЧЕСКИЕ ОБЪЕКТЫОбъектныепеременные вo многом подобны обычным переменным Турбо Паскаля, в частности, ихможно размещать в динамической памяти. Турбо Паскаль содержит средства,облегчающие размещение объектных переменных в куче и их удаление из нее,например varPline Tline New Pline,Init В этом примере размещение объектной переменной на нее указывает PLINE в куче сопровождается одновременным обращением к конструктору

TLINE.INI T дляинициализации объекта и связывания виртуальных методов с вновь созданнойпеременной в процедуре NEW допускается в качестве второго параметра указыватьобращение к конструктору.Более того,процедуру NEW можно вызывать и как функцию - в этом случае она возвращаетзначение типа POI Init Обратите внимание первым параметром процедуре

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

NEW с одновременным вызовом конструктора динамическаяпамять резервируемая с помощью специального программного кода, входящего влюбой конструктор и вызываемого до начала работы исполняемой части конструктора до begin . При этом динамическая память может оказаться исчерпанной. В этомслучае стандартная функция обработки ошибок администратора кучи выдает значение0, что вызывает аварийное завершение программы с кодом ошибки 203.

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



Ваше мнение



CAPTCHA