Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Климов. Лекции / Алг_яз_Лекция_6.pptx
Скачиваний:
30
Добавлен:
14.05.2015
Размер:
695.42 Кб
Скачать

Конструкторы

и

Деструкторы

1

Полиморфизм

является

необходимым средством при обеспечении расширяемости типов в приложениях.

2

Виртуальные методы

3

Метод становится виртуальным, если за его объявлением в типе объекта стоит зарезервированное слово VIRTUAL.

Виртуальные методы

4

Необходимо помнить, что если метод объявлен в родительском типе как

VIRTUAL, то

все методы с аналогичными именами в дочерних типах также должны объявляться

виртуальными,

во избежание ошибки компилятора.

5

Например:

 

 

 

 

UNIT New_persons;

 

 

 

 

INTERFACE

 

 

 

 

TYPE

 

 

 

 

 

PPerson = ^TPerson;

 

 

 

 

TPerson = OBJECT

 

 

 

 

Name : STRING[30];

 

 

 

 

Date

: STRING[10];

 

 

 

 

Rate

: REAL;

 

 

Rt:REAL);

 

CONSTRUCTOR Init(Nm,Dt:STRING;

 

DESTRUCTOR Done;

 

VIRTUAL;

 

 

PROCEDURE ShowAll;

 

VIRTUAL;

 

 

END;

 

 

 

 

 

PStudent = ^TStudent;

 

 

 

TStudent = OBJECT(TPerson)

 

 

Ball

: REAL;

 

 

Rt,Bl:REAL);

 

CONSTRUCTOR Init(Nm,Dt:STRING;

 

DESTRUCTOR Done;

 

VIRTUAL;

 

 

FUNCTION GetSum : REAL; VIRTUAL;

 

 

PROCEDURE ShowSum;

VIRTUAL;

 

 

PROCEDURE ShowAll;

 

VIRTUAL;

 

 

END;

 

 

 

 

 

PStaff = ^TStaff;

 

 

 

 

TStaff = OBJECT(TPerson)

 

 

 

Bonus

: REAL;

 

 

Rt,Bn:REAL);

 

CONSTRUCTOR Init(Nm,Dt:STRING;

 

DESTRUCTOR Done;

 

Виртуальные методы

6

VIRTUAL;

 

FUNCTION GetSum : REAL; VIRTUAL;

 

 

PROCEDURE ShowSum;

VIRTUAL;

 

 

Виртуальные методы

7

Виртуальные методы

8

Виртуальные методы

9

Например:

VAROne,Two: TPerson;

BEGIN

One.Init('Петр Петров','25-06-1995' ,400000);

Two := One; {Неправильный вызов!}

END;

Виртуальные методы

10

Соседние файлы в папке Климов. Лекции