c ++在节点树中使用'this'

时间:2013-03-05 09:57:25

标签: c++ tree nodes

我在主要的根目录。然后在另一个.cpp中我做了类似

的事情
TreeNode * current = this;

然后,如果我做

current = current->right;

所以我可以走下树了。它会改变“这个”指的是什么吗?

2 个答案:

答案 0 :(得分:2)

  

它会改变'this'指的是什么吗?

即可。

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

答案 1 :(得分:1)

不,您this的值复制到current。更改current不会影响this。无论如何,您无法更改this的值。