Дружественная функция - Большая Энциклопедия Нефти и Газа, статья, страница 3
Каждый подумал в меру своей распущенности, но все подумали об одном и том же. Законы Мерфи (еще...)

Дружественная функция

Cтраница 3


31 Определенные пользователем операции поместить в поток и взять из потока. [31]

Заметим, что функции operator и operator объявлены в class PhoneNumber не как функции-элементы, а как дружественные функции. Эти операции не могут быть элементами, так как объект класса PhoneNumber появляется в каждом случае как правый операнд операции; а для перегруженной операции, записанной как функция-элемент, операнд класса должен появляться слева. Перегруженные операции поместить в поток и взять из потока должны объявляться как дружественные, если они должны иметь прямой доступ к закрытым элементам класса по соображениям производительности.  [32]

Создайте определенный пользователем класс Point, который содержит закрытые данные-элементы xCoordinate и yCoordinate и объявляет перегруженные функции-операции взять из потока и поместить в поток как дружественные функции класса.  [33]

Создайте определенный пользователем класс Complex, который содержит закрытые данные-элементы real и imaginary и объявляет перегруженные функции-операции взять из потока и поместить в поток как дружественные функции класса.  [34]

При перегрузке унарных операций предпочтительнее создавать фукции-операции, являющиеся элементами класса, вместо дружественных функций, не являющихся элементами. Дружественных функций и дружественных классов лучше избегать до тех пор, пока они не станут абсолютно необходимыми. Использование друзей нарушает инкапсуляцию класса.  [35]

При перегрузке унарных операций предпочтительнее создавать фук-ции-операции, являющиеся элементами класса, вместо дружественных функций, не являющихся элементами. Дружественных функций и дружественных классов лучше избегать до тех пор, пока они не станут абсолютно необходимыми. Использование друзей нарушает инкапсуляцию класса.  [36]

При перегрузке оператора необходимо использовать функции-члены класса. Нельзя использовать дружественные функции, которые не являются членами класса.  [37]

Дружественные функции используются для повышения производительности. Приведем формальный пример, показывающий, как работает дружественная функция. Далее в этой книге дружественные функции применяются для перегрузки операций, используемых классами, и для создания классов итераторов. Объекты классов контейнеров способны хранить множество элементов в форме, подобной массиву.  [38]

39 Друзья могут иметь доступ к закрытым элементам класса ( часть 2 из 2.| Функции, не яфляющиеся друзьями или элементами, не могут иметь доступ к закрытым элементам класса ( часть 1 из 2. [39]

Программа на рис. 7.6 демонстрирует сообщения, вырабатываемые компилятором, когда для изменения закрытого элемента данных х вызывается функция cannotSetX, не являющаяся дружественной. Рисунки 7.5 и 7.6 предназначены для ознакомления с формальным механизмом использования дружественных функций; практические примеры использования дружественных функций появятся в последующих главах.  [40]

Операция преобразования ( называемая также операцией приведения) может быть использована для преобразования объекта одного класса в объект другого класса или в объект встроенного типа. Такая операция преобразования должна быть нестатической функцией-элементом; операция преобразования этого вида не может быть дружественной функцией.  [41]

Программа на рис. 7.6 демонстрирует сообщения, вырабатываемые компилятором, когда для изменения закрытого элемента данных х вызывается функция cannotSetX, не являющаяся дружественной. Рисунки 7.5 и 7.6 предназначены для ознакомления с формальным механизмом использования дружественных функций; практические примеры использования дружественных функций появятся в последующих главах.  [42]

Нужно избегать дружественных функций и дружественных классов, если только это не является крайне необходимым. Использование друзей нарушает инкапсуляцию класса.  [43]

Дружественные функции используются для повышения производительности. Приведем формальный пример, показывающий, как работает дружественная функция. Далее в этой книге дружественные функции применяются для перегрузки операций, используемых классами, и для создания классов итераторов. Объекты классов контейнеров способны хранить множество элементов в форме, подобной массиву.  [44]

Ключевой пункт при выполнении перегрузки операции - обеспечение той же лаконичности выражений для типов, определяемых пользователем, которую обеспечивает C для встроенных типов за счет богатого набора операций. Перегрузка операций не является автоматическим процессом, и для выполнения нужной процедуры программист должен написать перегружающую операцию функцию. Иногда эту роль лучше выполняют функции-элементы, иногда дружественные функции и, время от времени, эту роль могут выполнять функции, не являющиеся ни элементами, ни друзьями.  [45]



Страницы:      1    2    3    4