CheckPointer

Rend le type de l'indicateur de l'objet.

ENUM_POINTER_TYPE  CheckPointer(
   objectanyobject      // indicateur de l'objet
   );

Paramètres

anyobject

[in]  L'indicateur de l'objet.

La valeur rendue

Rend la valeur de l'énumération ENUM_POINTER_TYPE.

Note

La tentative de l'appel à l'indicateur incorrect amène à l'achèvement critique du programme. C'est pourquoi il y a une nécessité de l'utilisation de la fonction CheckPointer avant l'utilisation de l'indicateur. L'indicateur peut être incorrect dans les cas suivants:

  • l'indicateur est égal à NULL;
  • si l'objet était supprimé à l'aide de l'opérateur delete.

On peut utiliser cette fonction le contrôle de l'indicateur sur la validité. La valeur, distinguée du zéro, garantit qu'on peut avoir l'accès selon l'indicateur.

Pour valider rapidemen le pointeur, vous pouvez également utiliser l'opérateur "!" (exemple) qui vérifiera via un appel implicite à la fonction CheckPointer.

Exemple:

//+------------------------------------------------------------------+
//| Supprimer la liste en suppriment ses éléments                    |
//+------------------------------------------------------------------+
void CMyList::Destroy()
  {
//--- indicateur de service pour le travail dans la boucle 
   CItem* item;
//--- passons par la boucle et essayez de supprimer les indicateurs dynamiques
   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");
     }
//---
  }

Voir aussi

Les indicateurs des objets, Le contrôle de l'indicateur de l'objet, L'opérateur de l'effacement de l'objet delete