当重载赋值运算符时,我注意到许多示例通过引用返回,然后返回一个引用的“this”指针,如下所示:
Myclass &operator=(const Myclass &rhs){
if(this==&rhs)
return *this;
value=rhs.value;
return *this;
}
我不明白的是,为什么它不在不取消引用的情况下只返回指针“this”,因为指针的值是一个地址? 肯定会返回一个取消引用的指针返回指向的值,而不是 header 中 & 指定的地址。
最佳答案
如果您将函数的返回类型更改为 MyClass*
,那么您可以返回 this
而无需取消引用它。 this
是一个指针,您只能将其作为指针返回,除非您取消引用它。
关于c++ - 为什么 'this' 指针在通过引用返回以进行运算符赋值时被取消引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59227932/