который расширяет TTimer, а также создает класс универсального измерения 
производительности, который вы можете использовать для тестирования алгоритмов, 
операций ввода-вывода и другого, критичного к времени мнения, кода. 

    ЗАМЕЧАНИЕ 

    Класс   TTimer   (с   двумя   Т)   в  Borland   C++   31   имел   имя   Timer 
  (с   одним   Т)    Определите   символ BI_OLDNAMES с помощью директивы #define 
для компиляции программ,  использующих старую форму имен  однако каждый 
символ имен функций-членов также следует преобразовать в прописной, так что 
лучше, откорректироватъ  программы  так,   чтобы  они  могли  использовать  
новые  классы.   Поскольку  TTimer   — низкоуровневый по своей природе (он 
обращается непосредственно к компьютерному оборудованию для обеспечения   
функций,   связанных  с  отсчетом   времени),   вы   можете   использовать  
этот  класс   только  в программах, написанных для DOS, но не для WINDOWS. 

    Отпуская закрытые члены класса, которые производный класс в любом случае не 
сможет использовать, класс TTimer объявлен в заголовочном файле TIMER.H 
следующим образом:

    class TTimer
    { 
     public:
       TTimer();	// Конструктор        
       void Start();         // Начать отсчет времени 
       void Stop();	// Закончить отсчет времени 
       void Reset();	// Очистить таймер 
       int Status();       -  // 0==отсчет времени остановлен; 1==идет отсчет времени 
      double Time();         // Прошедшее время в миллисекундах 
      static double Resolution() ; // См. главу 15 
    private: 
      .......
  }
 
    ЗАМЕЧАНИЕ 

    Статические функции-члены описаны в главе 15. А пока не обращайте внимания 
на статическую; функцию-член resolution() в классе TTimer.	

    Предполагая, что вы установили Borland C++, используя имена каталогов по 
умолчанию, отметим, что объявление класса TTimer хранится в 
C:\BC45\INCLUDE\CLASSLIB. Модуль с исходными текстами T1MER.CPP располагается 
в C:\BC45\SOURCE\CLASSLIB. Ознакомьтесь с этими файлами для того„ ттобы узнать 
больше о том, как реализован класс TTimer. 
    Интересно, что в модуле класса TTimer имеется встроенная тестирующая 
программа, которую вы можете компилировать и запустить на выполнение. Для 
запуска программы на выполнение из DOS, перейдите в каталог, в котором располагается 
TIMER.CPP (на моем компьютере — C:\BC45\^OURCE\CLASSLIB), и введите следующую 
команду (аккуратно введите все пробелы, точно так, как показано ниже) :

    bcc -DTEST_TIMER -DBI_OLDNAMES -IC:\BC45\INCLUDE timer 

    Определение символа TEST_TIMER с помощью опции компилятора -D скомпилирует 
функцию main() в модуле TIMER.CPP, что позволит модулю обслужить собственную тестирующую 
программу.  Определение символа BI_OLDNAMES необходимо, поскольку тестирующая программа, 
похоже, была скопирована из версии 3.1 и, очевидно, не была перепроверена во время 
разработки Borland C++ 4.0. Вам необходимо задавать путь к включаемым файлам с 
помощью опции -I только в том случае, если это еще не сделано в вашей конфигурации 
по умолчанию. 
    После компиляции запустите на выполнение TIMER. Программа выводит отчет о 
точности таймера: 

    Resolution:   8.39e-07 
    О ms.,  actual time	=	0.024674	seconds. 
    100 ms.,  actual time	=	0.127362	seconds. 
    200 ms.,  actual time	=	0.222327	seconds. 
    300 ms.,  actual time	=	0.314453	seconds. 
    400 ms.,  actual time	=	0.393548	seconds. 
    500 ms.,  actual time	=	C.465171	seconds. 
    600 ms.,-actual time	=	0.630901	seconds. 
    700 ms.,  actual time	=	0.738385	seconds. 
    800 ms.,   actual time	=	0.775155	seconds. 
    900 ms.,   actual tin»	=	0.836996	seconds. 

    Эти сообщения показывают, что точность модуля TIMER не слишком высока, 
однако он может быть полезен для событий, связанных с временем, с точностью 
приблизительно до одной десятой секунды. 
    

    Глава 14. Объектно-ориентированное программирование 347 
