CheckPointer

Gibt Typ des Anzeigers des Objektes zurück.

ENUM_POINTER_TYPE  CheckPointer(
   objectanyobject      // Objektanzeiger
   );

Parameter

anyobject

[in] Objektanzeiger.

Rückgabewert

Gibt Wert aus der Enumeration ENUM_POINTER_TYPE zurück.

Hinweis

Versuch der Anwendung eines unkorrekten Anzeiger führt zum kritischen Brechen des Programms. Darum ist es notwendig, die Funktion  CheckPointer zu verwenden vor dem Gebrauch des Anzeigers. Anzeiger kann in folgeneden Faellen unkorrekt sein:

  • Anzeiger ist NULL gleich;
  • wenn Objekt durch die Anweisung delete entfernt wurde.

Die vorliegende Funktion kann als Pruefung des Anzeigers auf Gueltigkeit verwendet werden. Nicht-Null Wert garantiert, dass der Anzeiger für Zugang verwendet werden kann.

Um einen Zeiger schnell zu überprüfen, kann man auch den Operator "!" (Beispiel) verwenden, der ihn über einen impliziten Aufruf der Funktion CheckPointer überprüft.

Beispiel:

//+------------------------------------------------------------------+
//| Entfernung der Liste durch Entfernung der Elementen              |
//+------------------------------------------------------------------+
void CMyList::Destroy()
  {
//--- Dienstanzeiger für Arbeit im Zyklus
   CItem* item;
//--- gehen wir durch den Zyklus und versuchen wir, dynamische Anzeiger zu entfernen 
   while(CheckPointer(m_items)!=POINTER_INVALID)
     {
      item=m_items;
      m_items=m_items.Next();
      if(CheckPointer(item)==POINTER_DYNAMIC)
        {
         Print("Dynamic object ",item.Identifier()," to be deleted");
         delete (item);
        }
      else Print("Non-dynamic object ",item.Identifier()," cannot be deleted");
     }
//---
  }

Sehen Sie auch

Objektanzeiger, Pruefung der Objektanzeiger , Anweisung der Objektentfernung delete