c++ - 为什么 'this' 指针在通过引用返回以进行运算符赋值时被取消引用?

标签 c++ pointers operator-overloading return-by-reference

当重载赋值运算符时,我注意到许多示例通过引用返回,然后返回一个引用的“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/

相关文章:

python - 如何返回指向ctypes中结构的指针?

c++ - 引用计数线程安全吗

c - signal() 函数返回的函数指针的用途是什么?

C++11 move 构造函数有副作用

c++ - 成员指针和静态变量

Ruby 运算符和方法调用

c++ - C++类中的运算符重载函数

operator-overloading - C++0x T operator+(const T&, T&&) 模式,还需要移动吗?

c++ - 如何在应用程序退出()期间处理 Qthread 终止?

C++、Qt 信号和槽