CheckPointer

函数返回 指针对象类型

ENUM_POINTER_TYPE  CheckPointer(

   object* anyobject      // 对象指针

   );

参量

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");

     }

//---

  }

另见

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