
IsEqual()
*********


FUNKTION
========

   int IsEqual(object ob)


DEFINIERT IN
============

   /std/unit.c


ARGUMENTE
=========

   ob      Das Objekt das geprueft werden soll.

BESCHREIBUNG:
   Diese Funktion prueft ob zwei Objekte vom gleichen Typ sind, also
   ob z.B. ob und this_object() beides Muenzen sind oder beides
   Edelsteine. Bei einem Ergebnis != 0 fasst unit.c diese zwei Objekte
   automatisch zusammen, wenn ob->IsEqual(this_object()) auch einen
   Wert != 0 ergibt. Hierbei wird das IsEqual() von beiden beteiligten
   Objekten gerufen und sie muessen uebereinstimmen, dass sie
   eigentlich das gleiche Objekt sind. Selbstverstaendlich ist diese
   Funktion nur im Falle von Unitobjekten sinnvoll.


RUeCKGABEWERT
=============

   0 - this_object() ist nicht vom selben Typ wie ob
   1 - this_object() ist vom gleichen Typ wie ob


BEISPIELE
=========

   o Ein Unitobjekt das verschiedene Beschreibungen haben kann...

      int IsEqual(object ob)
      {
         if (!(int)::IsEqual(ob)) return 0;
         return (QueryProp(P_SHORT)==ob->QueryProp(P_SHORT));
      }


SIEHE AUCH
==========

   /std/unit.c

25.01.2015, Zesstra
