本文共 720 字,大约阅读时间需要 2 分钟。
如何在类中将实例对象的指针清空。
在编程的过程中通常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了。虽然这样写并没有省啥事,这样写主要是体验下指针,指针的指针,指针的指针的指针的魅力
转载地址:https://blog.csdn.net/yfh1985sdq/article/details/6982834 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!