Указатель является отдельной сущностью от объекта, на который он указывает.
Несколько указателей, указывающих на один и тот же объект, не имеют никакого отношения друг к другу (кроме того факта, что они указывают на один и тот же объект), поэтому ими нужно управлять отдельно.
Этот факт вызывает проблему в примере кода, который вы опубликовали: после удаления объекта с помощью указателя myObj
вы правильно установите указатель на NULL
, чтобы указать, что он больше не указывает на действительный объект. Однако указатель myConn->obj
по-прежнему указывает на уже удаленный объект (т. Е. Указатель больше не действителен).
Использование общего указателя ( boost :: shared_ptr ) может помочь в такой ситуации.