Вопрос 9: Классы в Delphi, динамическая память, конструкторы, деструкторы, назначение, правила записи.



Классом в Object Pascal называется структура языка, которая может иметь в своем составе переменные, функции и процедуры. Класс — это определенный пользователем тип данных, который обладает внутренними данными и методами в форме процедур или функций и обычно описывает родовые признаки и способы поведения рада похожих объектов. Переменные в зависимости от предназначения именуются полями или свойствами. Процедуры и функции класса — методами. Соответствующий классу тип будем называть объектным типом:

type

TMyObject = class(TObject)

MyField: Integer;

function MyMethod: Integer;

end;

 

Динамическая память – это часть оперативной памяти, предоставляемая программе для работы, за вычетом сегмента данных, стека и тела программы. Размер динамической памяти можно варьировать в широких пределах. И всю ее можно использовать для размещения данных.

 

Когда объявляется структура, можно указать ее как динамический тип. Для это­го нужно объявить еще одну переменную и присвоить ей — имяСтруктуры. Чаще всего в качестве нового имени используют то же самое имя, только в начале добав­ляют букву "Р" (это означает Pointer или указатель). Кроме того, объявление это делают прямо перед объявлением структуры:

В ЭТОМ примере PWindowsSize— указатель на структуру WindowsSize. Теперь, чтобы разместить нашу структуру не в стеке, а в динамической памяти, мы должны использовать именно

type PWindowsSize = WindowsSize; WindowsSize = record Left, Top, Width, Height: Integer; end;   PwindowsSize: var ws:PWindowsSize; begin ws: =New (PWindowsSize) ; / / Выделяем память ws.Left:=10; // Изменяем одно свойство Dispose (ws); // Уничтожаем память End

 

Конструкторы и деструкторы отвечают за существование объекта в памяти, т.е. выделяют память для экземпляра класса, затем и освобождают ее.

Конструктор — это специальный вид подпрограммы, присоединенный к классу. Его назначение — создавать представителей (экземпляры) класса. Он ведет себя как функция, которая возвращает ссылку на вновь созданный экземпляр класса, т.е. на объект. Одновременно выделяется память для хранения значений полей экземпляра класса.

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

Синтаксис объявления конструкторов и деструкторов:

Type

<имя класса>=Сlass[{Имя родительского класса>)]

. . .

Constructor Имя конструктора>[(<параметры>)]; [Override;]

Destructor <имя деструктора>[(<параметры>)}; [Override;]

End;

 


Дата добавления: 2019-07-15; просмотров: 144; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!