在 C++ 中的析构函数中删除指针后将 NULL 分配给指针有什么用吗?

发布于 2024-10-11 17:32:43 字数 538 浏览 4 评论 0原文

可能的重复:
是否值得在析构函数中将指针设置为 NULL?< /a>

我看到一些像这样的代码,

void ClassA::~ClassA()
{

delete member;
member = NULL;

}

因为在这个析构函数之后特定的实例不再存在(或者实例被破坏并且其成员不能再使用或取消引用),将 NULL 分配给成员变量指针?

这只是删除其他地方的指针并为其分配 NULL 的做法吗?

Possible Duplicate:
Is it worth setting pointers to NULL in a destructor?

I see some code like this,

void ClassA::~ClassA()
{

delete member;
member = NULL;

}

as the particular instance doesn't exist anymore after this destructor (or the instance is destructed and its members can't be used or dereferenced anymore), what is the use of assigning NULL to the pointer of member variable?

Is it just a practice taken from deleting a pointer elsewhere and assigning NULL to it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

我爱人 2024-10-18 17:32:44

这是毫无意义的 - 该空间在重新分配之前不会再次使用。

It's pretty pointless - the space isn't going to be used again until it is reallocated.

︶ ̄淡然 2024-10-18 17:32:44

这对于发布代码毫无意义,但对于调试可能有帮助。

It's pointless for release code, but potentially helpful for debugging.

掩耳倾听 2024-10-18 17:32:44

我认为没有理由更新已经超出范围的数据,并且“以防万一”做事并不是一个好的做法。
无论如何,不​​要盲目追随“良好实践”,了解自己为什么做事比成为“良好实践”宗教最热衷的实践者更好。

I see no reason for updating data which is already out of scope, and it is NOT good practice to do things "just in case".
At any rate do not follow "good practices" blindly, it is better to understand why you do things than being the most fervours practitioner of the "good practices" religion.

冷夜 2024-10-18 17:32:44

是的,这只是一个很好的做法。帮助人们不要忘记在其他地方将指针设置为 null ;)

yes, this is just good practice. helps one not to forget to set pointers to null elsewhere ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文