есурсов. Существуют два возмож

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

есурсов. Существуют два возможных способа: • перехват исключений внутри конструктора с последующим освобождением ресурса; • выделение ресурсов только в конструкторе объекта, чтобы освобождение ресурсов могло выполняться внутри деструктора. Во втором варианте каждая операция выделения ресурсов становится атомарной вследствие того, что эти операции являются частью жизненного цикла локального объекта. Если выделение ресурса завершается неудачей, другие объекты вы- Зачистка 39 деления ресурсов будут должным образом уничтожены в процессе раскрутки стека. Эта методика называется получением ресурсов при инициализации (Resource Acquisition Is Initialization, RAII), поскольку управление ресурсом (выделение и освобождение) совмещается с основными точками жизненного цикла объекта. Ниже показано, как эта задача решается за счет применения шаблонов в предыдущем примере: //: СО1:Wrapped.срр // Безопасные, атомарные указатели linclude linclude using namespace std: // Упрощение. В вашем случае могут использоваться другие аргументы, tempiate class PWrap { T* ptr: public: clas


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