Я реализую кучу минут с дополнительным свойством сохранения максимального ключа между детьми. У меня есть класс 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 имеет производный класс, который я буду использовать. В любом случае .. Возможно ли иметь переменную-член, указывающую на это?
_ «Возможно ли иметь переменную-член, указывающую на это?» _ Почему вы думаете, что это невозможно? Похоже, вы спрашиваете о XY-проблеме. Уточните, какова ваша фактическая проблема. –
Вы пытались скомпилировать и запустить его? –
'max' - указатель. 'this' является указателем. Ты тоже не хочешь быть указателем? – user4581301