由于我不是开发人员,所以我确定这是关键字研究问题,而不是其他任何东西。
考虑
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_ptr
或std::shared_ptr
之类的智能指针,则按照您的期望,由其管理的内存将保持生命或删除。
如果您分配给unique_ptr
,则在承担新内存的责任之前,将删除其管理的任何内存。