race nl; // Запуск исключения:
Автор admin Воскресенье, 3 мая 2009 11:32
race nl; // Запуск исключения: Trace array[5]: Trace n2; // Сюда не попадаем } catch(int i) { cout « “caught ” « i « endl: } } ///:- Зачистка 37 Класс Trace выводит информацию о создании и уничтожении своих объектов, что позволяет проследить за ходом выполнения программы. Класс подсчитывает созданные объекты в статической переменной counter, а идентификатор конкретного объекта хранится в переменной objid. Функция main() создает один объект nl (objid 0), а затем пытается создать массив из пяти объектов Trace, но создание четвертого объекта (идентификатор 3) прерывается. Таким образом, создание объекта п2 так и не завершается. Из выходных данных программы видно, как происходит вызов деструкторов: constructing Trace #0 constructing Trace #1 constructing Trace #2 constructing Trace #3 obstructing Trace #2 obstructing Trace #1 obstructing Trace #0 caught 3 Три элемента массива создаются успешно, но в процессе вызова конструктора четвертого элемента запускается исключение. Поскольку в main() конструирование четвертого объекта (array[2]) не было завершено, в программе вызываются деструкторы только для объ
Комментарии закрыты.
Последние комментарии