ルートをメインにしています。次に、別の .cpp で次のようなことを行います
TreeNode * current = this;
もしそうなら
current = current->right;
だから私は木を降りることができます。「これ」が指すものは変わりますか?
「これ」が指すものは変わりますか?
いいえ。
current
は のエイリアスではなく、ポインタをthis
変更することはできません。this
これがあなたがしていることです。this
何らかのオブジェクトへのポイントを想定し、それを と呼びますOBJECT1
。最初は、次のような状況があります。
[ this --------> OBJECT1 ] (this points to OBJECT1)
これを行った後
TreeNode * current = this;
次のような状況があります。
[ this --------> OBJECT1 ] (this points to OBJECT1)
[ current -----> OBJECT1 ] (current also points to OBJECT1)
あなたがこれをした後...
current = current->right;
次のような状況があります。
[ this --------> OBJECT1 ] (this still points to OBJECT1)
[ current -----> OBJECT2 ] (current now points to a different object)
OBJECT2
または によって指されたオブジェクトはどこにありますかOBJECT1->right
。
いいえ、の値をにコピーしています。変更しても には影響しません。いずれにしても inの値を変更することはできません。this
current
current
this
this