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.


 

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

31953. ОСОБЕННОСТИ СОЦИАЛЬНОГО ЗДОРОВЬЯ ЖЕНЩИН, НА ПРИМЕРЕ ООО «АВТОРАЛЬФ» 492 KB
  ЗДОРОВЬЕ ЖЕНЩИНЫ – ОСНОВА ЗДОРОВЬЯ НАЦИИ8 1. Общественное здоровье факторы здоровья и факторы риска для здоровья женщин. Факторы влияющие на социальное и физиологическое здоровье женщин. Нормативноправовая база регламентирующая здоровье женщин.
31954. Методические указания по написанию дипломных работ 174.5 KB
  Схема библиографического описания документа для списка литературы Библиографическое описание на книгу или любой другой документ составляется по определенным правилам и регламентируется: ГОСТ 7. Заголовок может включать имя лица имя лица условно применяемое понятие включающее фамилию инициалы или имя и отчество псевдоним личное имя или прозвище в качестве фамилии наименование организации унифицированное заглавие произведения обозначение документа географическое название иные сведения. Шангиной Сведения об издании включают...
31955. Огни дноуглубительного снаряда. Разновидности насосов судовых систем. Ходкость судна. Дноуглубление и руслоочищение 154 KB
  Ходкость судна Ходкостью называется способность судна перемещаться на воде с заданной скоростью при определенной мощности двигателя. Ходкость является одновременно мореходным качеством и маневренным элементом судна. Инерция является только маневренным элементом судна. зависит от назначения судна и его габаритов.
31956. Творческий портрет американского журналиста 60-80-х гг. XX века Хантера С. Томпсона 383 KB
  Гонзо-журналистика – новый жанр-ответвление так называемой «новой журналистики». Само понятие «новый журнализм» появилось в 60-х годах и означало новый вид журналистики, более приближенный к прозе. К сожалению, Хантер Томпсон является, пожалуй, единственным ярким представителем данного течения, однако влияние гонзо-журналистики на последующее развитие всей журналистики в целом неоспоримо.