2

関数内の参照型へのポインターを返すと、コンパイラ エラーが発生しましinitial value of reference to non-const must be an lvalueた。機能はこんな感じ

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

しかし、をに変更するthis*this、エラーはなくなりました。

4

2 に答える 2

3

C++ では、this特殊変数はクラス インスタンスへのポインターを保持します。

インスタンスへの参照、同じメモリ位置への別の名前を返す関数を作成しています。

使用すると、ポインターを*this逆参照し、現在のインスタンスを保持する実際のメモリ位置に到達し、そのエイリアスを返します。this

それはうまくいきます!ポリモーフィズムが必要な場合に備えて、オブジェクトのスライスの問題に注意してください。

于 2013-01-09T12:23:17.707 に答える
1

ポインタと参照は同じものではありません。thisは現在のクラス インスタンスへのポインタ*thisであり、 は値としての実際のインスタンスです (具体的には、戻り値として使用される場合は左辺値)。

于 2013-01-09T12:17:54.753 に答える