Node:TypeOf, Next:Unbind, Previous:type of, Up:Reference
function TypeOf (var x): PObjectType;
Returns a pointer to the VMT of an object type or variable. This pointer can be used to identify the type of an object.
TypeOf can be applied to expressions of object type and to
object type names. In the former case, the actual type of
polymorphic objects is returned.
TypeOf is a Borland Pascal extension.
program TypeOfDemo;
type
FooPtr = ^Foo;
BarPtr = ^Bar;
Foo = object { Has a VMT, though it doesn't }
x: Integer; { contain virtual methods. }
constructor Init;
end;
Bar = object (Foo)
y: Integer;
end;
constructor Foo.Init;
begin
end;
var
MyFoo: FooPtr;
begin
MyFoo := New (BarPtr, Init);
if TypeOf (MyFoo^) = TypeOf (Bar) then { True }
WriteLn ('OK')
end.