在更新指针之前自动调用删除



由于我不是开发人员,所以我确定这是关键字研究问题,而不是其他任何东西。

考虑

class A
{
public:
B* myBpointer;
[...]
}

class B
{
 [...]
}

和一个简单的片段:

int main(int argc, char** argv)
{
 A myA;
 while(1)
 {
    if(myA.myBpointer)delete myA.myBpointer;
     myA.myBpointer = new B;
     [...]
 }
return 0;
}

在C 中是否有一种更好的方法来声明mybpointer,以避免检查指针是否为无效,然后再分配或删除,然后将其分配给之前?

如果您使用诸如std::unique_ptrstd::shared_ptr之类的智能指针,则按照您的期望,由其管理的内存将保持生命或删除。

如果您分配给unique_ptr,则在承担新内存的责任之前,将删除其管理的任何内存。

最新更新