c++ - 在 C++ 中替换对象自身

标签 c++ oop object pointers

ASNI C++ 中的对象如何替换自身?我想要一个像 foo->replaceBy(bar) 这样的函数 这将导致对象 foo 删除自身并用 bar 替换指针

if (foo->isFoo())
{
    foo->replaceBy(bar);
}

ASSERT(foo->isFoo(), false);
ASSERT(foo->isBar(), true);

最佳答案

指针不能替换自身——对象当然可以修改自身,但thisconst,并且因为可能有多个指向对象的指针从逻辑上讲,对象无法知道它属于哪个指针(它根本不属于单个指针,甚至不属于任何指针)。

但是,也许 Envelope–Letter pattern对您的特定问题有帮助。

关于c++ - 在 C++ 中替换对象自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9215063/

相关文章:

c++ - EDSDK 3.4.0 on OS X 10.12.1 with Rebel t6i : `kEdsObjectEvent_DirItemCreated` event is not received for up to 30 seconds after photo is taken

java - WebDriver 废话

java - 命名接口(interface)和实现并将其放入包中的良好实践

javascript - 函数调用的对象解构

python - 将Python字符串对象写入文件

C++ - 如何在另一个类中使用私有(private)构造函数实例化对象

c++ - 使用复 vector 时出错

c++ - Linux C++ XImage RGB <-> BGR?

c++ - 计算空字符单元格 C++

javascript - 面向对象的 Javascript 如何用于 DOM 操作