Я смотрю на Мармеладная реализация CSharedPtr, который предназначен для выполнения подсчета ссылок. В документации говорится, что:
Когда последний CSharedPtr<> ссылка на конкретный объект выходит из области видимости, счетчик ссылок достигает нуля, и для объекта вызывается оператор удаления.
Есть ли способ освободить объект, не выходя за его пределы? Кажется, я не могу установить его в NULL.
Попробуйте построить новый CSharedPtr
используя конструктор, который позволяет передать указатель, а затем присвоить его тому, который вы хотите установить null
,
CSharedPtr<T> cNullPtr( NULL );
existingPtr = cNullPtr;
Других решений пока нет …