создает глобальный объект today класса TTime.  До вызова main() C++ 
вызывает для today конструктор ~irae по умолчанию, который устанавливает в 
объекте текущую дату и время. 

   Coздается объект класса 

   С++ вызывает конструктор класса объекта

   Конструктор выделяет требуемое количество  памяти

   Программа вызывает функции-члены                 

   Объект класса выходит из области видимости 
C++ вызывает вызывает деструктор,  класса 
который освобождает выделенную память

    0       t+1 t+2 t+3 t+n 

    Рис. 13.5. События, обычно происходящие с объектом во время его существования

    Для инициализации глобального объекта класса TTime какими-либо 
определенными датой и временем следует использовать следующее объявление: 

   TTime someTime( 9,  4, 1953, 10,  45) ; 

    Наличие списка инициализаторов в круглых скобках вынудит C++ заняться поисками 
в классе TTime конструктора, способного принять указанные аргументы. В данном случае C++ 
вызовет перегруженный конструктор TTime (строки 17-18 листинга 13.18),  который 
инициализирует someTime значением даты и времени 4 сентября 1953 года, 10:45. 
Опять же, это действие выполнится до того, как будет вызвана main(). 
    Деструкторы глобальных объектов класса вызываются как обычно в качестве 
части кода завершения программы, после отработки всех функций завершения, заданных 
вызовами функции atexitO (см. книгу Освоение Borland C++ 4.5. Энциклопедия функции). Конечно, 
деструкторы не вызываются, если программа заканчивается с помощью обращения к abort(). 

    Локальные объекты класса 

    Автоматические объекты класса, объявленные локальными в функции, создаются 
вместе с вызовом функции и уничтожаются с ее завершением. Как и переменные 
обычных типов, данные-члены автоматического объекта класса сохраняются в 
стеке. В функции

    void anyFunction(void) 
    { 
       TTime now;     // Инициализируется при каждом вхождении в функцию 
    } 
    
    по умолчанию вызывается конструктор TTime для инициализации объекта класса 
now текущими датой и временем каждый раз, когда вызывается функция. 
    Когда функция завершает работу, C++ вызывает деструктор TTime для объекта 
now, что дает объекту возможность "убрать" за собой до того, как он выйдет из 
области видимости. 
    Если вы вызываете exit() для того, чтобы завершить программу, деструкторы 
глобальных объектов классов вызываются как обычно, а деструкторы любых 
существующих автоматических переменных, локальных в функции (включая и те, 
которые локальны в mainO), не вызываются.

    Указатели на объекты 

    Указатели могут ссылаться на динамические объекты класса, пространство для 
которых обычно выделяется в куче с помощью new. Вы можете объявить указатель 
pToday на объект класса типа TTime следующим образом: 

    TTime *pToday; 

    Это объявление может быть как глобальным, так и локальным в функции. Как и 
все указатели, pToday необходимо инициализировать до его использования, обычно 
с помощью new: 

    pToday = new TTime; 

    Здесь с помощью оператора new выделяется пространство в куче для объекта 
типа TTime. Адрес первого байта этого объекта присваивается pToday. К тому же, 
C++ вызывает конструктор объекта по умолчанию, который в этом примере 
инициализирует объект текущими датой и временем. 
    Для использования другого конструктора добавьте параметры после имени 
класса. Например, для выделения памяти для объекта TTime и инициализации его с 
помощью вызова конструктора с пятью параметрами можно написать следующее:

    pToday = new TTime(9,   4,   1953,   10,   45); 

    Глава 13. Программирование классов    329 
