auto delete null ptr
От: Аноним  
Дата: 09.01.12 00:04
Оценка:
условия задачи

есть некая структура(класс) списков

class Singl
{
     Singl *Next;
     static Singl *This;

     ~Singl() { if (Next) delete Next; };

     static Singl *Init()
     {
              //.... инициалицация This,Next... итд
     };

};

Singl *Singl::This = 0;



1) после завершения программы нужно сделать if (Singl::This) delete Singl::This;
для автоматического очистки списка

недолго думая набросал класс дестроер указателя

template <typename T>
class auto_delete_ptr
{
     T **ptr;
 public:
     auto_delete_ptr(T **p) { ptr = p;};
     ~auto_delete_ptr() { if (*ptr) delete *ptr; };
};


и далее в .cpp модуле
static auto_delete_ptr autoDel(&Singl::This);

есть ли другие более стандартные варианты?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.