为什么没有必要将此关键字用作指针?

时间:2019-01-29 09:45:31

标签: c++ class oop this-keyword

我正在做链表,并且对节点类感到困惑

class node 
{
public: 
    int data;  
    node*next;  
    node(int data){
        this->data=data;
        next =NULL;
    }
} 

所以在这里我的问题是为什么this指针不必使用next关键字,我在只写left=NULL和{ {1}}而不是right=NULLthis->left=NULL为什么会这样?

1 个答案:

答案 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    
    }
};