delete this; this = new Someclass();
От: Garrett Россия  
Дата: 10.10.07 11:51
Оценка: :)
Допустим ли такой код? Например, для переинициализации в таком применении:
class ReinitableClass
{
public:
  ReinitableClass()
  {
  // инициализация приличного количества ресурсов
  }
  ~ReinitableClass()
  {
  // деинициализация
  }
  void ReInit()
  {
     delete this;
     this = new ReinitableClass();
  }
};

class Master
{
public:
   ReinitableClass m_reinitable;
   Master():m_reinitable()
   {
   }

   void SomeMethod()
   {
      m_reinitable.ReInit();
      // не произойдет ли тут какой-нибудь лажи?
   }
};
в борьбе со здравым смыслом победа будет за нами!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.