我可以告诉一个对象删除我吗?

Mar*_*n G 2 c++ delete-operator

一个对象a类的A调用对象b的类的B,通过指针:

void A::fun(){
  bPtr->delete_me();
}
Run Code Online (Sandbox Code Playgroud)

在被调用函数中,我们通过一个指针(之前存储了该指针)删除了调用对象:

void B::delete_me(){
  delete aPtr;
}
Run Code Online (Sandbox Code Playgroud)

这是安全的,因为A调用后访问任何成员bPtr->delete_me();

lub*_*bgr 7

鉴于A在致电后仍无法访问其任何成员,这是否安全bPtr->delete_me();

是。它与此处delete this;已讨论的非常相似。

  • @Peter您总是假设当您“删除”某些东西时。 (4认同)