搜索SO上的内容,我偶然发现了这个问题,其中一条评论得到了最多投票的回答(对最多投票答案的第五条评论)表明这delete p; p = NULL;是一个反模式.我必须承认,我碰巧经常使用它,有时候大部分时间都用它来检查if (NULL != p).Man自己似乎在暗示它(请参阅destroy()函数示例),所以我真的很困惑为什么它可能是一个可怕的事情被认为是反模式.我使用它的原因如下:
请注意,我不是在"this"指针的上下文中提出这个问题,让我们假设我们不是生活在一个完美的C++世界中,并且遗留代码确实存在并且必须进行维护,所以请不要建议任何一种智能指针:).