77985

Конструкторы и деструкторы

Лекция

Информатика, кибернетика и программирование

Конструкторы — это специальные методы, создающие и инициализирующие объект. Объект создается выделением для него области в динамически распределяемой памяти. Объявление конструктора выглядит так же, как объявление процедуры, но предваряется ключевым словом constructor. В качестве имени конструктора обычно задают имя Create.

Русский

2015-02-05

28.5 KB

0 чел.

Конструкторы и деструкторы

Конструкторы — это специальные методы, создающие и инициализирующие объект. Объект создается выделением для него области в динамически распределяемой памяти . Объявление конструктора выглядит так же, как объявление процедуры, но предваряется ключевым словом constructor. В качестве имени конструктора обычно задают имя Create. Часто в конструктор передают в качестве параметра владельца объекта. Владелец объекта (Owner) — этот тот объект, при уничтожении которого (освобождении занимаемой им памяти) уничтожится и данный объект.

Примеры объявлений конструкторов:

constructor   Create;

constructor  Create (Owner:   TComponent);

В реализации конструктора обычно первым идет вызов наследуемого конструктора с помощью ключевого слова inherited . В результате инициализируются все наследуемые поля. При этом порядковым типам в качестве начального значения задается 0, указателям — nil, строки задаются пустыми, а поля типа variant — Unassigned. Затем инициализируются новые поля, введенные в данном классе.

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

destructor   Destroy; destructor   Destroy;   override;

Реализация деструктора, как правило, завершается вызовом наследуемого деструктора с помощью ключевого слова inherited, чтобы освободить память, отведенную для наследуемых полей.

Например: Создать модуль с объектом «Линия» и методами «Нарисовать», «Переместить» и «Удалить».

UNIT Linia;

INTERFACE

Type

    TLene = object

     Private

x1, y1, x2, y2 : integer;  {координаты линии}

      color: word;  {цвет линии}

     Public

Procedure Draw (ax1,ay1,ax2,ay2:integer; aColor:word);

Procedure Perem;

Procedure Udal;

     End;

IMPLEMENTATION

Uses graph;

Procedure TLene.Draw;

   var dg, dm :integer;

 Begin

dg:=detect;  InitGraph(dg,dm, ’’);

x1:=ax1; y1:=ay1; y2:=ay2; x2:=ax2;

color:=aColor; setcolor(aColor);

line(x1,y1,x2,y2);

line(x2,y2,x2+60,y2);

End;

Procedure TLene.Perem;

Begin

ClearDevice;  SetColor(color);

Line(x1+30,y1+30,x2+30,y2+30);

Line(x2+30,y2+30,x2+90,y2+30);

End;

Procedure TLene.Udal;

Begin

ClearDevice; ReadLn; CloseGraph;

End;

END.

Основная программа: Использование модуля и объекта

Program Object_Line;

Uses crt, Linia;

Var x,y,xs,ys :integer;

Color:word;

objLine:TLene; {объект типа TLene }

Begin

 ClrScr;

 Readln(x,y,xs,ys,color);

 objLine .Draw(x,y,xs,ys,color);  {вызов процедуры Draw для объекта}

 objLine.Perem;{вызов процедуры Perem}

 objLine.Udal;  {вызов процедуры Udal}

End.


 

А также другие работы, которые могут Вас заинтересовать

85123. Тематичне опитування. Контроль навчальних досягнень учнів з теми Додавання і віднімання багатоцифрових чисел 33.89 KB
  На лісовій ділянці посадили 125 лип берізок на 75 більше ніж лип а дубів на 320 більше ніж беріз. Учні першої школи зібрали 12 кг 400 г шипшини другої на 5 кг 200 г менше ніж першої а третьої на 10 кг 700 г менше ніж учні першої і другої шкіл разом. У перших класах 180 учнів у других на 20 учнів більше ніж у перших а в третіх на 60 учнів менше ніж у других. Перша бригада відремонтувала 5 км 500 м дороги друга на 1 км 100 м більше ніж перша а третя на 4 км 900 м менше ніж перша і друга бригади разом.
85124. Аналіз тематичного опитування. Поняття про швидкість. Задачі на знаходження швидкості руху 86.98 KB
  Поняття про швидкість. Провести аналіз тематичного опитування; зясувати типові помилки; організувати роботу над помилками; ознайомити учнів з поняттям швидкість руху простими і складеними задачами на знаходження швидкості. Таблиця Швидкість. Щоб знайти швидкість треба відстань поділити на час.
85125. Задачі на знаходження відстані за даними швидкістю і часом. Знаходження значень виразів на додавання і віднімання 80.59 KB
  Ознайомити учнів зі способом визначення відстані за відомими швидкістю і часом; формувати вміння розвязувати задачі на основі творчих видів роботи; розвивати обчислювальні навички.
85126. Задачі на знаходження часу за швидкістю і відстанню. Дії над іменованими числами 104.28 KB
  Ознайомити учнів зі способом визначення часу за відомими швидкістю і відстанню; повторити виконання дій над іменованими числами.
85127. Прості і складені задачі на визначення швидкості, часу і відстані. Дії над іменованими числами. Ознайомлення з назвами геометричних тіл 43.93 KB
  Узагальнити зв\'язки між відстанню, часом і швидкістю; закріплювати вміння учнів розв\'язувати задачі на обчислення згаданих величин, виконувати дії над іменованими числами; ознайомити з назвами геометричних тіл.
85128. Дія множення. Переставний, сполучний і розподільний закони множення 57.4 KB
  Узагальнити уявлення учнів про дію множення; повторити взаємозвязки між величинами відстань, швидкість, час; перевірити обчислювальні навички та вміння розвязувати задачі, рівняння, нерівності.
85129. Нумерація трицифрових чисел. Табличне множення. Задачі на зведення до одиниці 224.36 KB
  Нумерація трицифрових чисел. Ознайомити учнів з підручником математики для 4 класу; повторити нумерацію трицифрових чисел зв\'язок дій додавання і множення таблицю множення; удосконалювати вміння розвязувати задачі на зведення до одиниці. Повторення нумерації трицифрових чисел. Назвіть цифру спільну для чисел кожного стовпчика і поясніть що вона означає в тому чи іншому випадку.
85130. Нумерація трицифрових чисел. Записування чисел під диктовку. Розкладання чисел на розрядні доданки 38.96 KB
  Повторити способи читання і записування трицифрових чисел, значення цифри залежно від її місця у запису числа, розкладання чисел на розрядні доданки, таблицю ділення; розвивати уміння розвязувати задачі двома способами, знаходити значення виразів зручним способом.
85131. Письмове додавання і віднімання трицифрових чисел. Знаходження значень буквених виразів. Розміщення відрізків на площині і в просторі 69.07 KB
  Письмове додавання і віднімання трицифрових чисел. Повторити прийоми письмового додавання і віднімання трицифрових чисел ділення і множення круглих чисел; удосконалювати вміння знаходити значення буквених виразів розвязувати задачі на знаходження третього доданка; закріпити поняття про вертикальне і горизонтальне положення відрізків. Заміни додавання множенням. З даного виразу на додавання склади ще один вираз на множення.