您的位置:首页 > 其它

如何在类中将实例对象的指针清空(不通过指针变量名改变指针变量的指向)

2011-11-17 17:25 483 查看
如何在类中将实例对象的指针清空。

在编程的过程中通常new一个对象,当该对象使用完了以后调用delete该对象指针进行删除并将其赋值为NULL,以免成为野指针,如下:

#include <stdio.h>

class CUi

{

public:

CUi();

~CUi();

};

CUi::CUi()

{

}

CUi::~CUi()

{

}

void main()

{

CUi* pCUi = new CUi;

// 使用完成后

// ...

delete pCUi;

pCUi = NULL;

getchar();

}

很多时候delete pCUi后忘记写pCUi = NULL为什么delete一个地址的时候不同时将这个指针指向NULL呢?埋怨解决不了问题,咱自己来动手吧。delete某个类后,会进入该类的析构函数,咱就在这个析构函数里实现pCUi = NULL代码如下:

#include <stdio.h>

class CUi

{

public:

CUi();

~CUi();

CUi** m_pSelfPtr;

};

CUi::CUi()

{

}

CUi::~CUi()

{

*m_pSelfPtr = NULL;

}

void main()

{

CUi* pCUi = new CUi;

pCUi->m_pSelfPtr = &pCUi;

// 使用完成后

// ...

delete pCUi;

// pCUi = NULL;

getchar();

}

现在不用调用pCUi = NULL,pCUi也不会成野指针了,乖乖的指向NULL了。虽然这样写并没有省啥事,这样写主要是体验下指针,指针的指针,指针的指针的指针的魅力
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐