関数内の参照型へのポインターを返すと、コンパイラ エラーが発生しまし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
であり、 は値としての実際のインスタンスです (具体的には、戻り値として使用される場合は左辺値)。