2017-02-11 113 views
-1

我正在执行一个最小堆,它具有在子节点之间保存最大密钥的额外属性。 我有一个节点类,如果节点是叶,我希望它指向自己。 喜欢的东西:一个类内的指针可以指向这个吗?

class Node 
{ 
    public: 
    void update max() 
    { 
     if ((left==NULL)&&(right==NULL)) 
      max=this; 
    } 


    private: 
    Key* key; 
    Value* val; 
    Node* left; 
    Node* right; 
    Node* max; 
} 

的原因是,现在它指向NULL,这让我查过很多次,如果max是比较钥匙之前NULL。 我还应该提到,我使用了所有这些指针,因为Key和Value是纯虚拟的,并且Node有一个我将使用的派生类。 无论如何..是否有可能有一个成员变量指向这个?

+1

_“是否有可能有一个成员变量指向这个?”_你为什么认为这是不可能的?听起来像你在问XY的问题。澄清你的实际问题是什么。 –

+1

你有没有试过编译和运行它? –

+0

'max'是一个指针。 'this'是一个指针。你也不想成为一个指针吗? – user4581301

回答

0

This根据定义,它是对象自身保持的引用/指针。
什么都不能禁止将参考值保存到其他东西

相关问题