0

ルートをメインにしています。次に、別の .cpp で次のようなことを行います

TreeNode * current = this;

もしそうなら

current = current->right;

だから私は木を降りることができます。「これ」が指すものは変わりますか?

4

2 に答える 2

2

「これ」が指すものは変わりますか?

いいえ

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

于 2013-03-05T10:09:32.163 に答える
1

いいえ、の値をにコピーしています。変更しても には影響しません。いずれにしても inの値を変更することはできません。thiscurrentcurrentthisthis

于 2013-03-05T09:58:41.637 に答える