это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
ДИНАМИЧЕСКИЕ ОБЪЕКТЫ
Объектные переменные вo многом подобны обычным переменным Турбо Паскаля, в частности, их можно размещать в динамической памяти. Турбо Паскаль содержит средства, облегчающие размещение объектных переменных в куче и их удаление из нее, например:
var
Pline: ^Tline;
.......
New(Pline, Init):
.......
В этом примере размещение объектной переменной (на нее указывает PLINE) в куче сопровождается одновременным обращением к конструктору TLINE.INIT для инициализации объекта и связывания виртуальных методов с вновь созданной переменной: в процедуре NEW допускается в качестве второго параметра указывать обращение к конструктору.
Более того, процедуру NEW можно вызывать и как функцию - в этом случае она возвращает значение типа POINTER, указывающее на динамически распределенный объект:
PLine := New(TLine);
или
PLine := New(TLine, Init):
Обратите внимание: первым параметром процедуре New передается указатель на динамически распределяемый объект, в то время как первым параметром функции NEW - тип распределяемого объекта. И в том, и в другом случае в качестве втором параметра обращения допускается использовать вызов конструктора, однако имя конструктора не может быть составным -ведь в момент обращения динамический объект еще не создан. Например, оператор
New(Pline, PLine^.Init);
вызовет сообщение об ошибке.
При обращении к NEW с одновременным вызовом конструктора динамическая память резервируемая с помощью специального программного кода, входящего в любой конструктор и вызываемого до начала работы исполняемой части конструктора (до begin). При этом динамическая память может оказаться исчерпанной. В этом случае стандартная функция обработки ошибок администратора кучи выдает значение 0, что вызывает аварийное завершение программы с кодом ошибки 203. Если используется нестандартная функция обработки ошибок и эта функция возвращает 1, конструктор пропускает операторы после begin и возвращает NIL. Таким образом гарантируется, что исполняемые операторы конструктора будут работать только при условии нормального распределения динамической памяти. Однако в теле конструктора может быть создан новый динамический объект, в нем - свой и т.д. Турбо Паскаль
допускает произвольную глубину вложенности конструкторов. Если на каком-то уровне обнаружится нехватка динамической памяти, необходимо ликвидировать всю цепочку успешно распределенных объектов. Чтобы эта операция стала возможной, в Турбо Паскаль введена стандартная процедура без параметров FAIL, которая может вызываться только из конструктора и которая освобождает уже выделенную конструктором память, завершает его работу и возвращает NIL.
Для удаления динамического объекта из кучи используется особый метод - деструктор, описываемый с помощью зарезервированного слова DESTRUCTOR. В этом методе можно предусмотреть все действия, связанные с ликвидацией динамического объекта (т.е. переменной объектного типа, размещенной в динамической памяти), например, осуществить нужную коррекцию списка динамических объектов. Обращение к деструктору указывается вторым параметром при вызове процедуры DISPOSE, например:
..........
type
TLine = object(Point)
......
Constructor Init;
Destructor Done;
end;
.......
New(PLine, Init); {Размещение динамического объекта}
.......
Dispose(PLine, Done); {Удаление динамического объекта}
.......
При необходимости деструктор, как и любой другой метод объекта
(кроме конструктора!), можно объявить виртуальным.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Курсовая работа для профессии поморское и кондитерское...
Курсовая, Поварское и кондитерское дело
Срок сдачи к 10 апр.
«Любимый уголок» - сочинения, описывающие дома, улицы, примечательные места, виды природы Шарыповского района, выражающие авторское отношение к родному району;
Сочинение, Литература
Срок сдачи к 5 апр.
Особенности деятельности рентгенолаборанта при проведении магнитно-резонансной томографии головного мозга.
Диплом, Сестринское дело
Срок сдачи к 4 мая
Необходимо решить двумерную задачу оптимизации 1) графически: изобразить допустимое множество и градиент целевой функции, найти оптимальный план 2) средствами поиска решения в ms excel
Решение задач, методы принятия управленческих решений
Срок сдачи к 4 апр.
Особенности логопедической работы по формированию компонентов связной речи у дошкольников с ОНР
Статья, Логопедия
Срок сдачи к 5 апр.
Составить базу персональных данный сотрудников мчс в acces три таблицы...
Курсовая, Информатика
Срок сдачи к 30 апр.
«анализ соответствия возможностей российских облачных платформ (vk cloud solutions, яндекс. облако, сбероблако) требованиям регуляторов в области защиты данных (152-фз, 187-фз).».
Диплом, Информационная безопасность
Срок сдачи к 17 апр.
Написать эссе на тему: таможенные споры о классификации товаров в соответствии с етн вэд: причины, анализ судебной практики.
Эссе, Таможенное право Евразийского экономического союза
Срок сдачи к 12 апр.
Контрольную работу выполняет Строго по методичке мой вариант...
Контрольная, эргономика, менеджмент
Срок сдачи к 23 апр.
Контрольная работа по службе управления персоналом решить Строго по методичке
Контрольная, Служба управления персоналом
Срок сдачи к 15 апр.
Заполните форму и узнайте цену на индивидуальную работу!