我是否必须在析构函数中设置指向nullptr的指针?

时间:2010-06-25 09:36:35

标签: c++ destructor

  

可能重复:
  Is it worth setting pointers to NULL in a destructor?

我是否必须这样做:

~MyClass()
{
delete[] my_data_;
my_data_ = nullptr;//DO I HAVE TO WRITE THIS LINE?
}

谢谢。

3 个答案:

答案 0 :(得分:2)

没有。一旦析构函数完成,就无法合法访问该指针,因此它的最终值无关紧要。

答案 1 :(得分:2)

delete[] my_data_;

在你使用它之后应该做你需要的所有工作,然后将my_data_设置为nullptr是没有必要的。

答案 2 :(得分:2)

不,它只会使代码混乱,没有实际用途和can be even optimized away by the compiler。无论如何,一旦析构函数返回对象生命周期结束,并且没有合法的方法来访问它 - 尝试无论如何都会导致未定义的行为。