User Defined Types

Declaration
   Declaring and describing user defined types
Referencing
   Accessing data in a user defined type
Member Procedures
   Declaring and defining methods related to a user defined type
Member Access Control
   Controlling when data and member procedures are accessed

Declarations
   Enum...End Enum
      User defined enumeration of values
   Type...End Type
      User defined structure of non overlapping data and member procedures
   Class...End Class
      Not implemented.  Keyword reserved.
   Union...End Union
      User defined structure of overlapping data
   Extends
      Extends an user defined type to derive another
   Extends Wstring
      Extends an user defined type to inherits Wstring behavior
   Extends Zstring
      Extends an user defined type to inherits Zstring behavior
   Implements
      Not implemented.  Keyword reserved.
   Field
      Specifies field alignment within a user defined type
   Object
      Built-in type providing run-time type information

Referencing
   Temporary Types
      Creates a temporary copy of a user defined type
   This
      Built-in, hidden, parameter passed to non-static member procedures to 
      access the user defined type instance
   Base (Member Access)
      Built-in, hidden, variable to access the base user defined type 
      instance in derived user defined types
   Type Alias
      Declares a user defined type from other user defined or standard data 
      types
   With
      Compound statement to access the data and members of a user defined 
      type

Member Procedures
   Base (Initialization)
      Specifies an initializer for the base user defined type in derived 
      user defined type constructors
   Constructor
      Declares or defines a member procedure that is automatically called 
      when a user defined type is created
   Destructor
      Declares or defines a member procedure that is automatically called 
      when a user defined type is destroyed or goes out of scope
   Function
      Declares or defines a member procedure returning a value
   Operator
      Declares or defines an overloaded operator
   Override
      Member method attribute that specifies that the method is expected to 
      override a virtual method in the base user defined type
   Property
      Declares or defines property member procedures for a user defined 
      type
   Sub
      Declare or defines a member procedure
   Static (Member)
      Declares or defines a member procedure or variable is static
   Virtual
      Member method attribute that declares that a member must have an 
      implementation
   Abstract
      Member method attribute that declares that a member must be 
      implemented in a derived user defined type
   Const (Member)
      Member method attribute that declares or defines that the method is 
      readonly and does not modify the user defined types's data

Member Access Control
   Public: (Access Control)
      Data and members in a user defined type have public visibility
   Private: (Access Control)
      Data and members in a user defined type have private visibility
   Protected: (Access Control)
      Data and members in a user defined type have protected visibility

