Cтраница 1
![]() |
Использование инициализаторов объектов-элементов ( часть 5 из 5. [1] |
Дружественные функции используются для повышения производительности. Приведем формальный пример, показывающий, как работает дружественная функция. Далее в этой книге дружественные функции применяются для перегрузки операций, используемых классами, и для создания классов итераторов. Объекты классов контейнеров способны хранить множество элементов в форме, подобной массиву. [2]
![]() |
Использование инициализаторов объектов-элементов ( часть 5 из 5. [3] |
Дружественные функции класса определяются вне области действия этого класса, но имеют право доступа к закрытым элементам private ( и, как мы увидим в главе 9 Наследование, к элементам protected) данного класса. Функция или класс в целом могут быть объявлены другом ( friend) другого класса. [4]
Дружественная функция класса определена вне области действия этого класса, однако она имеет право доступа к его закрытым ( и, как мы увидим в главе 19, Наследование, защищенным) элементам. Функция или целый класс могут быть объявлены в качестве друзей иного класса. [5]
Дружественная функция класса определяется вне этого класса и имеет право доступа к его закрытым и защищенным элементам. [6]
Дружественная функция шаблона функции должна быть шаблонной функцией. [7]
Объявления дружественных функций и классов могут быть помещены в любое место определения класса. [8]
Даже если дружественная функция не является функцией-членом класса, она имеет доступ как к закрытым, так и к защищенным членам класса, который объявляет ее дружественной. [9]
Помещайте все объявления дружественных функций и классов в начале определения класса сразу после его заголовка и не помещайте перед этими объявлениями никаких спецификаторов доступа. [10]
Помещайте все объявления дружественных функций и классов в начале области определения класса сразу после его заголовка и не помещайте перед этими объявлениями никаких спецификаторов доступа. [11]
Любая функция-элемент ( или дружественная функция), изменяющая закрытые элементы данных объекта, должна гарантировать, что данные остаются в целостном ( действительном) состоянии. [12]
Каждая функция-элемент ( или дружественная функция), которая изменяет исходные данные-элементы, должна гарантировать, что данные остаются в не противоречащем друг другу согласованном состоянии. [13]
Любая функция-элемент ( или дружественная функция), изменяющая закрытые элементы данных объекта, должна гарантировать, что данные остаются в целостном ( действительном) состоянии. [14]
Каждая функция-элемент ( или дружественная функция), которая изменяет исходные данные-элементы, должна гарантировать, что данные остаются в не противоречащем друг другу согласованном состоянии. [15]