CheckPointer

この関数は、オブジェクトポインターの型を返します

ENUM_POINTER_TYPE   CheckPointer object *  anyobject //オブジェクトポインター   );
         

パラメーター

任意のオブジェクト

[in]オブジェクトポインター。

戻り値

ENUM_POINTER_TYPE列挙から値を返します。

注意

誤ったポインターを呼び出そうとすると、プログラムがクリティカル終了しますそのため、ポインターを使用する前にCheckPointer関数を呼び出す必要があります。次の場合、ポインターは正しくない可能性があります。

  • ポインターはNULLと等しい。
  • オブジェクトは削除演算子を使用して削除されました。

この関数は、ポインターの有効性を確認するために使用できます。ゼロ以外の値は、ポインターがアクセスに使用できることを保証します。

例:

//+——————————————————————+
//| Deletes list by deleting its elements                            |
//+——————————————————————+
void CMyList::Destroy()
  {
//— service pointer for working in the loop
   CItem* item;
//— go through loop and try to delete dynamic pointers
   while(CheckPointer(m_items)!=POINTER_INVALID)
     {
      item=m_items;
      m_items=m_items.Next();
      if(CheckPointer(item)==POINTER_DYNAMIC)
        {
         Print(“Dynamyc object “,item.Identifier(),” to be deleted”);
         delete (item);
        }
      else Print(“Non-dynamic object “,item.Identifier(),” cannot be deleted”);
     }
//—
  }

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">