Re: вопрос касаемо exceptions и operator new/delete
От: jazzer Россия Skype: enerjazzer
Дата: 06.11.07 10:27
Оценка:
Здравствуйте, varnie, Вы писали:

V>почему при срабатывании исключения в конструкторе класса далее неявно вызывается operator delete. как С++ система узнает, что несмотря на то, что создание объекта не произошло, память, выделенную под него явно посредством operator new, следует удалить, и это происходит автоматически сразу же после срабатывания исключения в конструкторе?


Потому что автоматически при вызове конструктора вставляется отлов исключений, и если исключение вылетело, зовется operator delete и исключение перевыбрасывается.

V>почему при возбуждении исключения std::bad_alloc при выделении памяти под объект класса далее в ф-ции main не происходит вызов operator delete для этого класса несмотря на то, что операция удаления delete pCTest; прописана явно? в стандарте где-то оговорено, что при удалении NULL поинтера operator delete не будет вызываться?


Да, прописано.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.