# __objDerivedFrom()

Determine whether a class is derived from another class

Syntax

  __objDerivedFrom( <oObject>, <xSuper> ) --> lIsParent

Arguments

  <oObject> is the object to check.
  <xSuper> is the object that may be a parent. can be either an Object or a Character string with the class name.

Returns

  __objDerivedFrom() return a logical TRUE (.T.) if <oObject> is derived from <xSuper>.

Description

  __objDerivedFrom() is a low level class support function that check is one class is a super class of the other, or in other words, does class <oObject> a child or descendant of <xSuper>.

Examples

          // Create three classes and check their relations

          #include "hbclass.ch"
          FUNCTION main()
             local oSuper, oObject, oDress
             oSuper  := TMood():New()
             oObject := THappy():New()
             oDress  := TShirt():New()
             ? __objDerivedFrom( oObject, oSuper )    // .T.
             ? __objDerivedFrom( oSuper, oObject )    // .F.
             ? __objDerivedFrom( oObject, oDress )    // .F.
          RETURN NIL

          CLASS TMood
             METHOD New() INLINE Self
          ENDCLASS

          CLASS THappy FROM TMood
             METHOD Smile() INLINE qout( "*smile*" )
          ENDCLASS

          CLASS TShirt
             DATA Color
             DATA Size
             METHOD New() INLINE Self
          ENDCLASS

Status

  Ready

Compliance

  __objDerivedFrom() is a Harbour extension.

Files

  Library is rtl

See Also

- __objHasData()
- __ObjHasMethod()