假设`删除this`我有一个类foo
与函数release
调用delete this
:行为的功能
struct foo
{
std::int32_t release() const
{
delete this;
return 0;
}
};
为什么我连电话
delete this
鉴于该功能是const
?是否定义了返回0行为?
delete
之后的功能是否“排序”?
引用标准的答案(所以我可以在我的代码中插入一个奇特的评论)将不胜感激。
早晨Slodge:一次我不能回答你的问题。我认为这是安全的,因为我在不久前编写了代码,我仍然享受全职工作! 1.删除不是真的修改一个对象,它是抛出一个对象失去存在,2.认为成员函数不过是一个额外的(虽然隐藏)'this'参数的静态。只要你在删除对象后不提及'this',你就会好的。 PS是*我们的*代码。 – Bathsheba
这是在[C++ FAQ](https://isocpp.org/wiki/faq/freestore-mgmt#delete-this)中的一个条目。 – TartanLlama
它用于COM风格的引用计数。 –