ASNI C++ 中的对象如何替换自身?我想要一个像 foo->replaceBy(bar) 这样的函数 这将导致对象 foo 删除自身并用 bar 替换指针
if (foo->isFoo())
{
foo->replaceBy(bar);
}
ASSERT(foo->isFoo(), false);
ASSERT(foo->isBar(), true);
最佳答案
指针不能替换自身——对象当然可以修改自身,但this
是const
,并且因为可能有多个指向对象的指针从逻辑上讲,对象无法知道它属于哪个指针(它根本不属于单个指针,甚至不属于任何指针)。
但是,也许 Envelope–Letter pattern对您的特定问题有帮助。
关于c++ - 在 C++ 中替换对象自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215063/