跳至内容

CheckPointer

CheckPointer

此函数返回对象的类型指针.

ENUM_POINTER_TYPE  CheckPointer(
   object* anyobject      // object pointer
   );

参数

anyobject

[in] 对象指针。

返回值

返回ENUM_POINTER_TYPE枚举中的值。

注意

尝试调用错误的指针会导致程序的严重终止.因此,在使用指针之前必须调用CheckPointer函数。以下情况下指针可能不正确:

  • 指针等于NULL;
  • 对象已使用delete运算符被删除。

此函数可用于检查指针的有效性。非零值保证指针可用于访问。

示例:

//+------------------------------------------------------------------+
//| 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");
     }
//---
  }

另请参阅

对象指针, 检查对象指针, 对象删除运算符 delete

最后更新于