Я работаю с классом, который в основном работает нормально, но я делаю некоторые функции, которые могут иметь рекурсивную функцию, возвращающую указатель NULL
типа класса в качестве элемента управления, и поэтому он может назначать NULL
указатель на мой объект класса, если коротко:
Thing& Thing::operator=(Thing * _other){
if (_other == NULL){
*this = NULL; // compiler throws here
return *this;
}
// does other assignment work
return *this;
}
мой компилятор VS2010 выбрасывает, что this
не является I-значением. так как мне установить значение NULL
, или вообще возможно установить элемент в NULL изнутри?
EDIT: изменено с this
на *this
, хотя по какой-то причине теперь программа прерывается бесконечными вызовами оператора присваивания. понятия не имею, что происходит