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

    pToday->Display(); 

    Классы похожи на структуры, и использовать указатели на объекты класса вы 
будете чаще всего с помощью оператора -> для ссылки на член адресуемого 
объекта. Конечно, вы можете также использовать оператор * с указателями на 
объекты класса. Например, оператор 

    sp = (*pToday).GetSTime(); 

    присваивает переменной sp (которая объявлена, как const char *sp;) 
результат функции-члена GetSTLmeO для объекта класса, на который ссылается 
pToday. Конечно, оператор 

    sp = pToday->GetSTime(); 

легче для написания и чтения и выполняет аналогичные действия. 
    C++ вызывает деструкторы динамических объектов класса при их удалении. Оператор 

    delete pToday; 

    удаляет объект, на который ссылается pToday, освобождая память этого 
объекта в куче для последующего использования. Непосредственно перед 
разрушением объекта C++ вызывает деструктор класса, который может 
воспользоваться удобным случаем для освобождения памяти, используемой в 
объекте,. Например, в случае с классом TTime деструктор может освободить 
память, на которую ссылается указатель dts. 

    ЗАМЕЧАНИЕ 

    Не путайте жизнь указателя с жизнью объекта, на который он ссылается. 
Глобальный указатель существует до тех пор, пока программа не завершится, но 
он может ссылаться на множество объектов класса, создаваемых с помощью new и 
удаляемых с помощью delete. Аналогично, автоматические указатели, объявленные 
локальными в функции, создаются при выполнении функции и уничтожаются при ее 
завершении. Но объекты, на которые ссылаются указатели, имеют глобальную 
область дейтвия и должны удаляться явным образом. В функции f(), если вы 
вызовете new для создания объекта в куче, этот объект останется в памяти даже 
после завершения функции. Вы должны явным образом удалять любой подобный 
объект, если вы не хотите, чтобы он оставался в памяти после возврата из функции. 

    Ссылочные объекты 

    Объекты класса могут объявляться как ссылки. Предположим, вы объявили 
глобальный объект класса TTime: 

    TTime today;   // Глобальный объект today 

    Позже, в программе, вы можете объявить ссылку на today следующим образом: 

    TTime &rToday = today;	// Ссылка на today 

    Ссылка rToday — алиас для today, и может использоваться вместо today. 
Например, каждый из следующих двух операторов выведет дату и время: 

    rToday.Display() ; 
    today. Display() ;

    Поскольку ссылки ссылаются на реально существующие объекты, при входе в 
область действия ссылки конструктор класса не вызывается и, соответственно, не 
вызывается деструктор при выходе из области действия ссылки. Эти действия 
выполняются только при создании и удалении самого объекта. 
    Обычно ссылки объявляются в качестве параметров функции   На практике они 
редко используются так, как описано в этом разделе. 

    Объекты-параметры

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

    void anyFunction(TTime t)	
   { 
     t. Display() ; 
   } 

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