Jump to content

somDescendedFrom

From EDM2
Revision as of 19:57, 12 October 2017 by Martini (talk | contribs) (Created page with "{{DISPLAYTITLE:somDescendedFrom}} This method tests whether one class is derived from another. Not generally overridden. For backward compatibility, this method does not take...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This method tests whether one class is derived from another. Not generally overridden.

For backward compatibility, this method does not take an Environment parameter.

Original Class
SOMClass

Syntax

boolean somDescendedFrom (SOMClass receiver, SOMClass aClassObj)

Parameters

receiver (SOMClass)
A pointer to the class object to be tested.
aClassObj (SOMClass)
A pointer to the potential ancestor class.

Return Code

rc (boolean)
  • Returns 1 (true) if receiver is derived from aClassObj. 0
  • Returns 0 (false) if receiver is not derived from aClassObj.

Remarks

This method tests whether the receiver class is derived from a given class. For programs that use classes as types, this method can be used to ascertain whether the type of one object is a subtype of another.

This method considers a class object to be descended from itself.

Example Code

#include <dog.h>
/* --------------------------------------------
   Note: Dog is a subclass of Animal.
   -------------------------------------------- */
main()
{
  AnimalNewClass(0,0);
  DogNewClass(0,0);

  if (_somDescendedFrom (_Dog, _Animal))
     somPrintf("Dog IS descended from Animal\n");
  else
      somPrintf("Dog is NOT descended from Animal\n");
  if (_somDescendedFrom (_Animal, _Dog))
     somPrintf("Animal IS descended from Dog\n");
  else
     somPrintf("Animal is NOT descended from Dog\n");

This program produces the following output:

Dog IS descended from Animal
Animal is NOT descended from Dog


Related

Methods