我可以删除对象本身并重新分配它

Can I delete object itself and reallocate it?

本文关键字:分配 新分配 对象 删除 我可以      更新时间:2023-10-16

我可以重新分配对象本身吗?

最近我研究了复制构造函数,我对删除" this"并重新分配它感到好奇。

obj(const obj &s) {
    if(this != NULL)
        delete this;
    this = new obj();
}

,它说[错误] lVALUE是左派分配的左法所需的。是否不可能重新分配自己?如果是这样,为什么?

delete操作员仅适用于使用操作员new分配的对象,否则行为是未定义的。

完成delete this;后,不应访问所有成员。如果访问,它将导致异常并导致崩溃。

但是您无法分配给this指针。 this prvalue 表达式,其值是称为函数的对象的地址。