logo search
4 семестр

Указатели на методы.

Type

Mpointer = procedure(a:integer) of object; //указ. что используем указатель

OneClass = Class

Operation:MPointer; //тип указатель на метод

End;

TwoClass = class

Procedure add(b:integer);

Procedure div(b:integer);

End;

Var oneobject:OneClass;

twoobject:TwoClass;

if … then OneObject. Operation := twoobject.add();//обращ. к указателю на объект

else OneObject.operation:=Twoobject.div();

Указатели на методы используются в классе, в процессе выполнения программы менять функциональность данных классов.

Функциональность обьектов может быть сделана разной(с помощью указателей на методы).

Указатель на метод содержит 2 указателя:

1) Указатель на область памяти, где хранится метод

2) На тот обьект, метод которого заимствует( TObject)