рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Деструктор

Деструктор - раздел Программирование, ООП: инициализация и разрушение объекта конструктор и деструктор Для Уничтожение Объекта Служит Деструктор. Деструктор Объявляет...

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

Т.к. объект представляет собой сложную структуру, то рекомендуется использовать метод Done. Метод Done оформляется как деструктор – особая процедура, выполняющая специфическую работу, в том числе обеспечивающая объединение освобождающихся, возможно, небольших участков памяти в более крупные блоки.

Инструкция Dispose(p,Done); уничтожает объект, на который указывает P.

На практике в качестве конструктора используют метод, устанавливающий начальные значения экземпляра объекта. В частности, конструктор может быть пустым. В рассмотренном примере конструктором является метод Init. Конструктор – это обычный метод-процедура, в котором служебное слово procedure заменено на constructor. Он, помимо действий, заданных в его теле, выполняет установочную работу для механизма виртуальных методов, обеспечивая вызов в процессе выполнения программы именно того виртуального метода, который определён для вызывающего объекта. В примере 3 один и тот же метод Moveto будет работать по-разному (передвигать различные фигуры) в зависимости от того, экземпляр какого объектового типа этот метод вызывает. Такое свойство называется полиморфизмом.Полиморфизм возникает на стыке принципов наследования и динамических связей. Полиморфизм означает возможность определения единого по имени метода в каждом объектовом типе иерархической структуры разными способами.Пример 3. Текст программы, использующий виртуальные методы, может быть следующим:Uses Crt, Graph;Var gd,gm : integer;Type Tp=ObjectX,y,c : integer;

Constructor Init(ax,ay,ac : integer);

Procedure Show; Virtual;

Procedure Hide; Virtual;

Procedure Moveto(dx,dy : integer);

End;

Constructor Tp.Init;

Begin X:=ax; y:=ay; c:=ac End;

Procedure Tp.Show;

Begin Putpixel(x,y,c); End;

Procedure Tp.Hide;

Begin Putpixel(x,y,Getbkcolor) End;

Procedure Tp.Moveto;

Begin

Delay(1000); Hide;

X:=x+dx; y:=y+dy; ShowEnd; Type Tc=Object(Tp)R : integer;

Constructor Init(ax,ay,ac,ar : integer);

Procedure Show; Virtual;

Procedure Hide; Virtual;

End;

Constructor Tc.Init;

Begin Inherited(ax,ay,ac); R:=ar End;

Procedure Tc.Show;

BeginSetcolor(c); Circle(x,y,r)End;

ProcedureTc.Hide;

BeginSetcolor(Getbkcolor); Circle(x,y,r)End; Var P : Tp; C : Tc;BeginGd:=Detect;Initgraph(Gd,Dm,’c:bpbgi’);

P.Init(100,120,yellow);

P.Show; P.Moveto(50,50);

Readln;

C.Init(200,300,Green,150);

C.Show; C.Moveto(10,10);

Readln;ClosegraphEnd. Пример 4. Приведём пример реализации в виде объекта списка целых чисел. В качестве методов будем использовать следующие: инициализацию списка, добавление в список элемента с заданным значением, обработку элементов списка (печать) и метод, предназначенный для освобождения ранее выделенной памяти.Type Link=^Rec; Rec=Record Inf : Integer; Next : Link End;Tsp=Object Start : Link; Procedure Init; Procedure In_Spisok(X:integer); Procedure Print_Spisok; Procedure Done; End;Procedure Tsp.Init; Begin Start:=NilEnd; Procedure Tsp.In_Spisok;Varp : Link;BeginNew(p); P^.inf:=x; P^.next:=Start;Start:=pEnd; Procedure Tsp.Print_Spisok;Var p : Link;BeginP:=Start;While p<>Nil doBeginWrite(P^.inf:6);P:=P^.nextEnd;End; Procedure Tsp.Done;Var p : Link;BeginWhile Start<> Nil doBeginP:=Start;Start:=Start^.next;Dispose(p)EndEnd; Var Spisok : Tsp; A : integer; Ch : char;BeginSpisok.Init; Repeat Readln(A);Spisok.In_Spisok(A); Readln(Ch); Until Ch in [‘n’,’N’];Spisok.Print_Spisok; Spisok.DoneEnd.

– Конец работы –

Эта тема принадлежит разделу:

ООП: инициализация и разрушение объекта конструктор и деструктор

ООП инициализация и разрушение объекта конструктор и деструктор... Конструктор... Деструктор...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Деструктор

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги