# __objAddMethod()

Add a METHOD to an already existing class

Syntax

  __objAddMethod( <oObject>, <cMethodName>, <nFuncPtr> ) --> oObject

Arguments

  <oObject> is the object to work on.
  <cMethodName> is the symbol name of the new METHOD to add.
  <nFuncPtr> is a pointer to a function to associate with the method.

Returns

  __objAddMethod() return a reference to <oObject>.

Description

  __objAddMethod() is a low level class support function that add a new METHOD to an object. <oObject> is unchanged if a symbol with the name <cMethodName> already exist in <oObject>.
  Note that <nFuncPtr> is a special pointer to a function that was created using the @ operator, see example below.

Examples

          // create a new THappy class and add a Smile method
          oHappy := HBClass():New( "THappy" )
          __objAddMethod( oHappy, "Smile", @MySmile() )
          ? oHappy:Smile( 1 )       // :)
          ? oHappy:Smile( 2 )       // ;)
          ? oHappy:Smile( 3 )       // *SMILE*

          STATIC FUNCTION MySmile( nType )
          LOCAL cSmile
          DO CASE
             CASE nType == 1
                  cSmile := ":)"
             CASE nType == 2
                  cSmile := ";)"
             CASE nType == 3
                  cSmile := "*SMILE*"
          ENDCASE
          RETURN cSmile

Status

  Ready

Compliance

  __objAddMethod() is a Harbour extension.

Files

  Library is rtl

See Also

- __objAddInline()
- __objAddData()
- __objDelMethod()
- __ObjGetMethodList()
- __objGetMsgList()
- __objHasMethod()
- __objModMethod()