Node: TypeOf, Next: Unbind, Previous: type of, Up: Reference

### TypeOf

#### Synopsis

         function TypeOf (var x): PObjectType;

#### Description

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.

#### Conforming to

`TypeOf` is a Borland Pascal extension.

#### Example

         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.

#### See also

BitSizeOf, AlignOf, PObjectType, SetType, SizeOf, OOP.