Теория и практика объектно-ориентированного программирования. Ноткин А.М. - 24 стр.

UptoLike

Составители: 

25
Используем TypeOf для проверки принадлежности указателя на по-
лиморфный объект определенному классу.
Var p:PObject;
.........
if TypeOf(p^)=TypeOf(TCircle) then {это окружность}
Порядок выполнения работы.
1. Дополнить иерархию классов лабораторной работы 2 классами
группа”.
Например, для предметной области ФАКУЛЬТЕТ можно предло-
жить классыфакультет”, “студенческая группа”, “кафедра”. Рекоменду-
ется создать абстрактный класс подразделение”, который будет предком
всех групп и абстрактный класс TObject, находящийся во главе всей иерар-
хии.
2. Написать для класса-группы метод-итератор
.
3. Написать процедуру или функции, которая выполняется для всех
объектов, входящих в группу.
4. Написать демонстрационную программу, в которой создаются, по-
казываются и разрушаются объекты-группы, а также демонстрируется ис-
пользование итератора.
Методические указания.
1. Предметная область задается преподавателем или выбирается сту-
дентом самостоятельно. Для студентов заочного отделения эта область
должна быть связана с местом работы студента.
2. Пример добавленных классов:
PObject=^TObject; {абстрактный класс}
TObject=object
Constructor Init;
Destructor Done;virtual;
Procedure Show;virtual;
end;
PDepartment=^TDepartment;
TDepartment=object(TObject) {абстрактный класс-группа}
name:string; {наименование}
head:PPerson; {руководитель}
last:PItem; {указатель на начало связанного списка записей типа
TItem }
Constructor Init(Name1:string;Head1:PPerson);
                                   25

     Используем TypeOf для проверки принадлежности указателя на по-
лиморфный объект определенному классу.
     Var p:PObject;
     .........
     if TypeOf(p^)=TypeOf(TCircle) then {это окружность}


      Порядок выполнения работы.
      1. Дополнить иерархию классов лабораторной работы № 2 классами
“группа”.
      Например, для предметной области ФАКУЛЬТЕТ можно предло-
жить классы “факультет”, “студенческая группа”, “кафедра”. Рекоменду-
ется создать абстрактный класс − “подразделение”, который будет предком
всех групп и абстрактный класс TObject, находящийся во главе всей иерар-
хии.
      2. Написать для класса-группы метод-итератор.
      3. Написать процедуру или функции, которая выполняется для всех
объектов, входящих в группу.
      4. Написать демонстрационную программу, в которой создаются, по-
казываются и разрушаются объекты-группы, а также демонстрируется ис-
пользование итератора.

     Методические указания.
     1. Предметная область задается преподавателем или выбирается сту-
дентом самостоятельно. Для студентов заочного отделения эта область
должна быть связана с местом работы студента.
     2. Пример добавленных классов:
     PObject=^TObject; {абстрактный класс}
     TObject=object
      Constructor Init;
      Destructor Done;virtual;
     Procedure Show;virtual;
     end;

      PDepartment=^TDepartment;
      TDepartment=object(TObject) {абстрактный класс-группа}
       name:string;      {наименование}
       head:PPerson; {руководитель}
       last:PItem; {указатель на начало связанного списка записей типа
TItem }
       Constructor Init(Name1:string;Head1:PPerson);