Object

Built-in type providing run-time type information

Syntax
	KeyPgTypeType Object
		KeyPgTypeAs fb_BaseVT KeyPgPtrPtr vtable_ptr
		KeyPgDeclareDeclare KeyPgConstructorConstructor()
	KeyPgEndEnd KeyPgTypeType

Usage
	KeyPgTypeType typename KeyPgExtendsExtends Object
	KeyPgEndEnd KeyPgTypeType

	KeyPgDimDim variable KeyPgAsAs Object

Description
	Object is a built-in type which provides Run-Time Type Information 
	(RTTI) for all types derived from it using KeyPgExtendsExtends, allowing them to be 
	used with KeyPgOpIsOperator Is, and to support KeyPgVirtualVirtual and KeyPgAbstractAbstract methods.

	Extending the built-in Object type allows to add an extra hidden vtable 
	pointer field at the top of the KeyPgTypeType. The vtable is used to dispatch 
	KeyPgVirtualVirtual  and KeyPgAbstractAbstract methods and to access information for run-time 
	type identification used by KeyPgOpIsOperator Is.

Example
	See the KeyPgOpIsOperator Is page, the KeyPgVirtualVirtual and KeyPgAbstractAbstract pages.

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Object.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgExtendsExtends
	* KeyPgExtendsZstringExtends Zstring
	* KeyPgExtendsWstringExtends Wstring
	* KeyPgOpIsOperator Is
	* KeyPgVirtualVirtual
	* KeyPgAbstractAbstract

