我正在做链表,并且对节点类感到困惑
class node
{
public:
int data;
node*next;
node(int data){
this->data=data;
next =NULL;
}
}
所以在这里我的问题是为什么this
指针不必使用next
关键字,我在只写left=NULL
和{ {1}}而不是right=NULL
和this->left=NULL
为什么会这样?
答案 0 :(得分:2)
这就是语言的工作方式。它与变量是指针无关。将在类的范围内搜索类内的不合格标识符。当查询将拾取另一个符号(例如参数或局部变量)时,您将需要使用this
。
struct X
{
int a;
int b;
int c;
void foo(int b)
{
int c;
a; // data member X::a
this->a; // same
X::a; // same
b; // parameter b
this->b; // data member X::b
X::b; // data member X::b
c; // local variable X::foo::c
this->c; // data member X::c
X::c; // data member X::c
}
};