Принципы объектно-ориентированного визуального программирования_____53

Для реализации второго способа передачи информации — по ссылке, перед
именем параметра в заголовке функции должен быть записан символ амперсан-
та &. Например:

void Fl(char &Ch);

В этом случае не происходит копирования значения аргумента в локальную,
временную переменную в процедуре. Процедура реально работает не с параметром,
а со ссылкой — указателем на место хранения аргумента в памяти. И любые изме-
нения параметра Ch, произведенные в процедуре, в действительности относятся не
к этому параметру, а к тому аргументу, который передан при вызове процедуры.
Таким образом, передача параметра по ссылке позволяет возвращать информацию
из функции в вызвавшую его внешнюю процедуру.

Более подробную информацию о передаче параметров в функции вы найдете в
разделе 11.5.2 главы 11.

1.6.6 Работа с указателями на объекты

Основой объектно-ориентированного программирования являются объекты и
классы. В предыдущих разделах мы уже рассмотрели тот минимум сведений о
них, который необходим для начала продуктивной работы с C++Builder. В данном
разделе мы рассмотрим более сложные и тонкие вопросы работы с объектами. Чи-
татель, слабо знакомый или вовсе не знакомый с указателями, может без особых
потерь пропустить пока этот раздел и сразу перейти к материалу главы 2. Это не
помешает ему эффективно работать и создавать свои интересные приложения. А
когда возникнет потребность разобраться в каких-то вопросах, связанных с объек-

j     тами и указателями на них, можно, имея уже некоторый опыт, вернуться к этому
разделу и разобраться в неясных деталях. Но автор все-таки решил вынести эти
вопросы в начало книги, поскольку в дальнейшем изложении придется достаточно

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

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

Указатель на объект — это переменная, в которой хранится ссылка на объект
некоторого класса, т.е. на место в памяти, где размещен объект. Объявление (со-
здание) указателя на объект некоторого класса (типа) производится оператором:

<тип> *<указатель>;

Например, следующее объявление создает указатель на объект класса TLabel
(метку):

TLabel *Lab;

Создается не сам объект, а только указатель на любой объект данного типа. В
момент его создания указатель инициируется нулем. Нуль не может ассоциировать-
ся ни с каким объектом в памяти. Поэтому определить, занесена в указатель ссылка
на конкретный объект, или нет, можно, например, оператором:

if (Lab ==0) ... ;

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

В C++ предопределена константа NULL, которая эквивалентна нулевому ука-
зателю. Поэтому приведенный выше оператор эквивалентен следующему:

if (Lab == NULL) ...;

В дальнейшем указателю можно присвоить ссылку на любой объект соответст-
вующего класса простым присваиванием. Например: