<分区>
我正在尝试消除一些困惑代码中的所有内存泄漏。我有一个 Employee
类,其成员 name_
在运行时使用 new *char
在堆上分配。现在有一些实例,其中 name_
在 Employee
的析构函数被调用之前被手动删除。我知道这是不好的做法。但是,有些情况下我仍然需要通过析构函数删除name_
。我试过类似的东西
Employee::~Employee(){
if (this->name_)
{
delete[] this->name_;
}
}
或
if (this->name_ != NULL)
{
delete[] this->name_;
}
或
if (this->name_[0] != '\0')
{
delete[] this->name_;
}
但是那些选项没有意识到 name_
已经被删除到其他地方并试图删除一些不再存在的东西。
所以我需要类似的东西
if (char* name_ not deleted yet)
{
delte name_
}
有没有一种方法可以检查if
成员是否已经被删除?
编辑: 感谢您提供已经回答我的问题的链接,确实如此!