тель dts. Конструктор также вызывает функцию-член SetTime() с аргументами 
по умолчанию -1 (строка 10), устанавливая таким образом в объекте класса 
текущие дату и время. 

    Имя класса 
    Оператор разрешения области видимости 
    Имя конструктора по умолчанию 
    /       
    =^^^ 
    TTime::TTime() ^^ 
    Операторы внутри конструктора 

    Рис. 13.4. Детали и части конструктора 

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

    Использование конструкторов 

    Не все классы нуждаются в конструкторах, но в большинстве из них определен 
хотя бы один. В иных классах может быть дюжина конструкторов и даже более. 
Цель конструкторов — обеспечить ясно определенную инициализацию объектов 
класса. В листинге 13.20 демонстрируется инициализация объектов класса TTime 
конструкторами TTime(). Скомпилируйте программу и модуль поддержки TIME6 из 
командной строки DOS, введя bcc construc time6. Запустите на выполнение 
получившийся в результате выполняемый файл CONSTRUC.EXE путем ввода его имени. 
Или из интегрированной среды откройте проектный файл CONSTRUC.IDE с помощью 
меню Project и нажмите <Ctrl+F9> для компиляции и запуска программы в качестве 
приложения EasyWin. 

    Листинг 13.20.   CONSTRUC.CPP (использование конструкторов TTime) 

    1:	#include <iostream. h> 
    2:	#include <stdio.h> 
    3:	#include "time6.h"    
    4: 
    5:	main() 
    6:	{ 
    7:	 TTime t1; 
    8:	 TTime t2(8); 
    9:	 TTime t3(8,   1);
  10:	 TTime t4(8,   1, 1996);     
  11:	 TTime t5(8,   1, 1996,   8 ) ; 
  12:	 TTime t6(8,   1, 1996,  8, 30) ;
  13: 
  14:	 t1.Display(); 
  15:	 t2.Display();		
  16: 	 t3.Display();
  17: 	 t4.0isplay();
  18: 	 t5.Display();
  19:            t6.Display();	
  20:	 return 0 ; 
  21:	} 

    В строках 7-12 объявляются шесть объектов класса TTime. C++ автоматически 
вызывает конструктор класса при его создании. Например, когда программа 
выделяет пространство для tl, как это объявлено d строке 7, вызывается 
конструктор по умолчанию для инициализации объекта. 
    В строках 8-12 объявляются и инициализируются объекты класса, начиная с t2 
и заканчивая t6, с указанием явных параметров в круглых скобках. Эти объявления 
имеют сходство с более ранними примерами, в которых объявлялся объект класса 
TTime и затем вызывались функции-члены SetTime() для присваивания 

    326     Часть III. Программирование на ANSI С++
