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

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

Cтраница 2


Часто перегруженные функции operator объявляются как дружественные функции класса. Это позволяет им иметь доступ к закрытым элементам класса.  [16]

17 Проверка состояния потока. [17]

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

Также можно перегрузить унарный оператор, используя дружественную функцию, которая не входит в класс и имеет единственный параметр.  [19]

Перегруженные функции operator объявляются в классе PhoneNumber как дружественные функции. Перегруженные операции ввода-вывода должны быть объявлены как дружественные, если им необходим доступ к каким-то элементам, помимо открытых. Друзья класса имеют доступ к закрытым элементам.  [20]

21 Друзья могут иметь доступ к закрытым элементам класса ( часть 1 из 2. [21]

Программа на рис. 7.5 демонстрирует объявление и использование дружественной функции setX для установки закрытого элемента данных х класса count. Заметим, что объявление friend появляется первым ( по соглашению) в объявлении класса, даже раньше объявления закрытых функций-элементов.  [22]

23 Друзья класса могут обращаться к его закрытым элементам. [23]

В программе на рис. 17.5 демонстрируется объявление и использование дружественной функции setX для установки закрытого элемента данных х класса Count. Обратите внимание, что объявление friend появляется ( по соглашению) первым в объявлении класса, даже до объявления открытых элементов-функций.  [24]

Закрытые элементы класса могут быть доступны только для функций-элементов ( и дружественных функций) этого класса. Открытые элементы класса могут быть доступны для любых функций в программе.  [25]

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

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

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

Обратите внимание, что функции operator и operator объявляются в классе PhoneNumber в качестве дружественных функций, не являющихся элементами. Эти операции - не могут быть элементами класса, т.к. объекты класса PhoneNumber всегда появляются в операции в качестве правого операнда; операнд класса должен стоять в левой части, чтобы можно было перегружать операцию как функцию-элемент.  [29]

Понятия типа доступа - private, protected и public - не имеют смысла для объявлений дружественных функций и классов, поэтому эти объявления могут размещаться в любом месте определения класса.  [30]



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