Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 35 стр.

UptoLike

Составители: 

35
- название банка, в котором хранится его вклад. Взаимодействие между кли-
ентом и банком устанавливается в функции SetBank, в которой адрес клиента
заносится в массив клиентов банка spisok, увеличивается количество клиентов
банка в компоненте count, а также для клиента заполняется компонент
BankName – название банка, в котором хранится вклад. Таким образом, ком-
понентная
функция класса client должна иметь доступ к частным компонентам
другого класса (класса bank). Для того, чтобы это стало возможным, функция
SetBank объявляется как дружественная классу bank:
friend void client :: SetBank (bank &);
В общем виде объявление выглядит следующим образом:
friend тип имя_класса_функции :: имя_функции ( список_форм_параметров );
В функции SetBank для записи адреса объекта типа client в список клиен-
тов банка используется константа this. Константный указатель this может ис-
пользоваться только в нестатических компонентных функциях класса, причем
использовать его необходимо без предварительного определенияон опреде-
ляется транслятором автоматически. Указатель this хранит адрес объекта, для
которого произведен вызов метода класса
. Поддержка указателя this осущест-
вляется транслятором путем переопределения компонентных функций класса
и их вызовов в программе. На первом этапе преобразования каждая нестатиче-
ская функция-член преобразуется в функцию с уникальным именем и допол-
нительным параметром - константным указателем на объект класса. Затем
преобразуются обращения к нестатическим данным-членам в операторах
функции-
члена. Они переопределяются с учётом нового параметра. В C++ при
подобном преобразовании для обозначения дополнительного параметра-
указателя (константного указателя) и постфиксного выражения с операциями
обращения для обращения к нестатическим данным-членам используется одно
- название банка, в котором хранится его вклад. Взаимодействие между кли-
ентом и банком устанавливается в функции SetBank, в которой адрес клиента
заносится в массив клиентов банка spisok, увеличивается количество клиентов
банка в компоненте count, а также для клиента заполняется компонент
BankName – название банка, в котором хранится вклад. Таким образом, ком-
понентная функция класса client должна иметь доступ к частным компонентам
другого класса (класса bank). Для того, чтобы это стало возможным, функция
SetBank объявляется как дружественная классу bank:
     friend void client :: SetBank (bank &);
     В общем виде объявление выглядит следующим образом:
friend тип имя_класса_функции :: имя_функции ( список_форм_параметров );

    В функции SetBank для записи адреса объекта типа client в список клиен-
тов банка используется константа this. Константный указатель this может ис-
пользоваться только в нестатических компонентных функциях класса, причем
использовать его необходимо без предварительного определения – он опреде-
ляется транслятором автоматически. Указатель this хранит адрес объекта, для
которого произведен вызов метода класса. Поддержка указателя this осущест-
вляется транслятором путем переопределения компонентных функций класса
и их вызовов в программе. На первом этапе преобразования каждая нестатиче-
ская функция-член преобразуется в функцию с уникальным именем и допол-
нительным параметром - константным указателем на объект класса. Затем
преобразуются обращения к нестатическим данным-членам в операторах
функции-члена. Они переопределяются с учётом нового параметра. В C++ при
подобном преобразовании для обозначения дополнительного параметра-
указателя (константного указателя) и постфиксного выражения с операциями
обращения для обращения к нестатическим данным-членам используется одно



                                          35