-2

我在做链表,在节点类中有点困惑

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

所以在这里我的问题是为什么没有必要this为指针使用关键字next,我也在树类中看到了这一点,我们只写left=NULLright=NULL不是写this->left=NULLthis->right=NULL为什么会这样?

4

1 回答 1

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    
    }
};
于 2019-01-29T09:55:31.923 回答