2017-02-11 5 views
-1

Я реализую кучу минут с дополнительным свойством сохранения максимального ключа между детьми. У меня есть класс Node, и в случае, если узел является листом, я хочу, чтобы он указывал на себя. Что-то вроде:Может ли указатель внутри класса указать на это?

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, и это заставляет меня проверять слишком много раз, если Макс перед сравнением Ключей NULL. Я должен также упомянуть, что я использую все эти указатели, поскольку Key и Value являются чистыми виртуальными, а Node имеет производный класс, который я буду использовать. В любом случае .. Возможно ли иметь переменную-член, указывающую на это?

+1

_ «Возможно ли иметь переменную-член, указывающую на это?» _ Почему вы думаете, что это невозможно? Похоже, вы спрашиваете о XY-проблеме. Уточните, какова ваша фактическая проблема. –

+1

Вы пытались скомпилировать и запустить его? –

+0

'max' - указатель. 'this' является указателем. Ты тоже не хочешь быть указателем? – user4581301

ответ

0

This по определению является ссылкой/указателем на объект, который объект хранит сам.
Ничто не позволяет вам сохранить это ссылочное значение во что-то еще.