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.


 

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

59699. Сценарій. Наша мова, у тобі – великого народу ніжна і замріяна душа 50.5 KB
  Одним із найбільших скарбів які успадковує кожний народ від своїх предків є незаперечно його рідна мова. Мова ця то дзеркало душі народу то святиня з котрою звязана не тільки минувшість але і будучність народу і його повага в світі.
59700. День першокласника. Посвячення в читачі. Cценарій 46 KB
  Книги. А чи знаєте ви що книги мають назви Як кожне місто чи село вулиця чи площа деревина чи травичка мають назви так і книги мають свої назви. Дитяча бібліотека це справді Книжкове королівство в якому живуть різні книги і їхні герої.
59701. День козака 32 KB
  Із серця твого слово рідне виривали. Палили вроду у сліпім вогні. А ти весною знову зацвітала У вишитім вкраїнському вбранні... Тебе топтали, били, розпинали, Стріляли у калину і пісні.
59702. На перехресті (правила дорожнього руху для дітей) 67 KB
  Він до школи поспішає - перешкод не помічає (на сцену вибігає хлопець і виконує всі дії, про які говорять ведучі. В цей же час із-за куліс з двох сторін виходять водії (вантажівка та Мерседес) і рухаються по сцені на зустріч один одному.
59703. Свято першого дзвоника (сценарій) 32.5 KB
  Небесні вітрила блакитні Осіння пора підняла, І росяних трав оксамити З південних країв принесла.
59705. Інтегрований урок з української літератури і математики (6 клас) 66.5 KB
  Переорієнтація суспільства на розвиток людини зумовили якісно нові вимоги до вивчення шкільних предметів. Нині робота вчителів повинна бути спрямована головним чином на формування національно-мовної особистості — людини, яка володіє вміннями й навичками вільно...
59706. Від коріння – до крони…продовження традицій українського професійного театру у XX столітті 67 KB
  Мета уроку: розкрити учням традиції, які успадкував український професійний театр у XX столітті від класичного, роль Леся Курбаса у його створенні; виховувати учнів на прикладах полум’яного життя талановитого режисера в дусі патріотизму, вмінню протистояти негараздам...
59707. Узагальнення та систематизація знань з теми «Складне речення» (за повістю «Монолог перед обличчям сина» М.Г. Івасюка) 218 KB
  В. Івасюка його друзів ілюстрації критичні матеріали опорні схеми блоксхеми роздатковий матеріал сигнальні картки перфокарти схемаалгоритм визначення складного сполучникового речення ТЗН. У чому багатогранність таланту Володимира Івасюка 2 Яка пісенна спадщина В.