Язык программирования C++. Вводный курс


Деструктор класса - часть 4


(скажем, в случае, когда возбуждается исключение) ведет не только к утечке памяти, но и к пропуску вызова деструктора. Ниже приводится пример программы, переписанной с использованием auto_ptr (она слегка модифицирована, так как объект класса auto_ptr

может быть явно переустановлен для адресации другого объекта только присваиванием его другому auto_ptr):

#include <memory>

#include "Account.h"

Account global( "James Joyce" );

int main()

{

   Account local( "Anna Livia Plurabelle", 10000 );

   Account &loc_ref = global;

   auto_ptr<Account> pact( new Account( "Stephen Dedalus" ));

 

   {

      Account local_too( "Stephen Hero" );

   }

 

   // объект auto_ptr уничтожается здесь

}




Начало  Назад  Вперед



Книжный магазин