Вопрос 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!