ектов аггау[1] и аггау[0]. В к

Автор admin Воскресенье, 3 мая 2009 11:32

ектов аггау[1] и аггау[0]. В конце уничтожается объект nl, но не объект п2, который так и не был создан. Управление ресурсами Программируя обработку исключений, всегда следует задавать себе вопрос: «Если произойдет исключение, будут ли освобождены задействованные ресурсы?» Как правило, механизм освобождения ресурсов работает достаточно надежно, но существует специфическая проблема, связанная с конструкторами: если до завершения конструктора будет сгенерировано исключение, то для данного объекта деструктор не вызывается. Это означает, что при написании конструкторов необходимо быть особенно внимательным. Проблема связана с выделением ресурсов в конструкторах. Если в конструкторе произойдет исключение, то деструктор не сможет освободить этот ресурс. Чаще всего эта проблема проявляется в виде «зависших» указателей. Пример: //: C01:Rawp.cpp // Зависшие указатели linclude linclude using namespace std; class Cat { publ i с: CatO { cout « “CatO” « endl; } -CatO { cout « “-CatO” « endl; } }: class Dog { public: void* operator new(size_t sz) { cout « “allocating a Dog” « endl; throw 47; } vo


Комментарии закрыты.