Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Деструктор обязательно описывать:
1) для любых объектов;
2) для объектов, имеющих конструктор;
3) для динамических объектов;
4) для динамических полиморфных объектов.
3. Дайте определение метода Методы: Процедуры и функции, связанные с классом. Они определяют действия, ко-торые можно выполнять над объектом такого типа, и которые сам объект может выпол-нять.
Опишите порядок создания динамического объекта
Динамическое создание объектов
Для работы с динамическими объектами используется расширенный синтаксис процедур New и Dispose. Обе процедуры в этом случае содержат в качестве второго параметра имя конструктора или деструктора объекта:
New(P, Construct) или
Dispose(P, Destruct).
Где Р — указатель на переменную объектного типа, a Construct и Destruct — конструктор и деструктор этого типа.
Действие процедуры New в случае расширенного синтаксиса равносильно действию операторов
New(P);
Р^.Construct;
А вызов процедуры Dispose эквивалентен последовательности
Р^.Destruct; Dispose(P);
Динамические объекты. Деструкторы
Для выделения памяти под объекты используются процедура и функция new.
Например, если определены указатели:
Type
pmonstr = *monstr:
pdaemon = ^daemon; var pm: pmonstr; pd: pdaemon;
можно создать объекты с помощью вызовов:
new(pm); { или pm:= new(pmonstr); } new(pd); { или pd:= new(pdaemon); }
Обратите внимание, что при использовании new в форме процедуры параметром является указатель, а в функцию передается его тип. Так как после выделения памяти объект обычно инициализируют, в Паскале для удобства определены расширенные формы new с двумя параметрами. На месте второго параметра задается вызов конструктора объекта:
Дата публикования: 2015-10-09; Прочитано: 398 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!