CheckPointer

函数返回 指针对象类型

ENUM_POINTER_TYPE  CheckPointer(
   objectanyobject      // 对象指针
   );

参量

anyobject

[in]  对象指针。

返回值

ENUM_POINTER_TYPE 枚举中返回值。

注释

想要调用不正确的指针到危险终止结果程序中,在使用指针之前,调用CheckPointer函数是有必要的,如下条件下,指针是不正确的:

  • 指针等于 NULL
  • 使用 delete 操作删除对象;

该函数可以用来正确检测指针,非零值警告指针在访问时使用。

要快速验证指针,您还可以使用操作符"!" (示例)通过隐式调用CheckPointer函数来检查。

示例:

//+------------------------------------------------------------------+
//| 通过删除元素来删除列表                                              |
//+------------------------------------------------------------------+
void CMyList::Destroy()
  {
//--- 循环工作服务指针
   CItem* item;
//--- 循环检测并删除动态指针
   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");
     }
//---
  }

另见

对象指针检测对象指针对象删除操作符的删除