不能赋值:左键需要作为赋值的左操作数

Can not assign to this: lvalue required as left operand of assignment

本文关键字:赋值 操作数 不能      更新时间:2023-10-16
class scope{  
    //...
    scope* parent;  
    //...
public:  
    //...
    void leavescope();  
    //...
};  
void scope::leavescope(){  
    this = this->parent; // complains about this line  
}

我正在尝试实现范围,但在离开范围并返回外部级别范围时遇到问题。

thisprvalue或纯右值,不能修改,草稿C++标准部分9.3.2 这个指针说:

在非静态 (9.3( 成员函数的主体中,关键字 this 是一个 prvalue 表达式,其值是为其调用函数的对象的地址。[...]

目前尚不清楚您为什么要修改