PreventInsert()

FUNKTION

int PreventInsert(object ob);

DEFINIERT IN

/std/container/restrictions.c

ARGUMENTE

ob
Das Objekt, das in den Behaelter eingefuegt werden soll.

BESCHREIBUNG

Mit dieser Funktion kann ein Behaelter pruefen, ob er das Objekt ob aufnehmen moechte oder nicht.

Man beachte bitte, dass nach dieser Funktion nicht garantiert ist, dass das Objekt wirklich bewegt wird, es handelt sich lediglich um die Abfrage der Erlaubnis! Die Bewegung kann aus einer Vielzahl an Gruenden noch abgebrochen werden.

Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsert() zwar aufgerufen, aber das Ergebnis ignoriert, d.h. die Aufnahme kann in dem Fall nicht verhindert werden.

RUeCKGABEWERT

0
wenn das Objekt aufgenommen werden kann;
> 0
ein Wert groesser als 0 zeigt an, dass das Objekt nicht aufgenommen werden soll.

BEISPIELE

Um zu verhindern, dass man Geld in einen Behaelter stecken kann, sollte man wie folgt vorgehen:

public int PreventInsert(object ob)
{
  // Wenn es Geld ist, erheben wir sofort Einspruch
  if (ob->id("geld"))
    return 1;
  // Ansonsten koennte ein ererbtes Objekt noch Einspruch erheben!
  else
    return ::PreventInsert(ob);
}

SIEHE AUCH

Last modified: 30.01.2020, Zesstra