有这个:
class Foo
{
public:
void destroy() { delete this; }
public:
// Stuff here...
};
int main(int argc, char *argv[])
{
Foo* foo = new Foo;
// Option 1
delete foo;
// Option 2:
foo->destroy();
return 0;
}
方案一和方案二是同一个操作吗?这是销毁物体的“正确”方法吗?为什么/为什么不?
非常感谢,
最佳答案
是的,在这种情况下两者是等价的。
但是您绝对应该选择选项 1。delete this
很容易出错,违反了各种设计原则,在这种情况下完全没有意义。
关于c++ - C++中使用成员函数删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22810035/