Re[2]: Вопрос новичка про виртуальный деструктор
От: unrealalex Россия  
Дата: 30.04.04 11:50
Оценка:
Здравствуйте, _AK_, Вы писали:
class Parent
{
public:
  Parent(){};
  virtual ~Parent(){};
    
private:
  Parent(const Parent&);
  Parent& operator=(const Parent&);
};

class Child: public Parent
{
public:
  Child(): m_Pointer(new int) {}
  virtual ~Child()
  {
    delete m_Pointer;
  }
    
private:
  int* m_Pointer;
    
  Child(const Child&);
  Child& operator=(const Child&);
};

int main()
{
  Parent* obj = new Child();
  delete obj; // <- если тут не вызовется деструктор класса Child, то у нас будет mem-leak.
}

так ИМХО будет вернее — деструктор Parent вызоветься всегда, ведь мы же удаляем Parent*.
Невозможное мы сделаем сегодня — чудо займет немного больше времени. /Аноним/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.