我是否必须这样做:
~MyClass()
{
delete[] my_data_;
my_data_ = nullptr;//DO I HAVE TO WRITE THIS LINE?
}
谢谢。
答案 0 :(得分:2)
没有。一旦析构函数完成,就无法合法访问该指针,因此它的最终值无关紧要。
答案 1 :(得分:2)
delete[] my_data_;
在你使用它之后应该做你需要的所有工作,然后将my_data_设置为nullptr是没有必要的。
答案 2 :(得分:2)
不,它只会使代码混乱,没有实际用途和can be even optimized away by the compiler。无论如何,一旦析构函数返回对象生命周期结束,并且没有合法的方法来访问它 - 尝试无论如何都会导致未定义的行为。