返回指向引用的指针

Return pointer to reference

本文关键字:指针 引用 返回      更新时间:2023-10-16

当我在函数中返回指向引用类型的指针时,我得到了编译器错误initial value of reference to non-const must be an lvalue。函数是这样的

Testing& copy(Testing test)
{
    x = test.x;
    return this;
}

但是当我将this更改为*this时,错误就消失了

在c++中,this特殊变量保存着一个指向类实例的指针

您正在创建一个函数,该函数返回引用到一个实例,另一个名称到相同的内存位置。

当你使用*this时,你对this指针解引用,得到保存当前实例的实际内存位置,并返回别名。

它确实有效!如果需要多态,请注意对象切片问题。

指针和引用不是一回事。this是指向当前类实例的指针,而*this是作为值的实际实例(更具体地说,当用作返回值时,是左值)。