Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
 Аватар для levgen
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185

Friend-функции

28.08.2015, 17:13. Показов 1488. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
из теории ясно, что friend функция — это функция, которая не является членом класса, но имеет доступ к членам класса, объявленным в полях private или protected.
Но мне задали хитрый вопрос:
"Для каких целей перегруженный оператор в friend-функции используется?"
Кто поможет, благодарю заранее.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.08.2015, 17:13
Ответы с готовыми решениями:

Перегрузка операторов, friend или нет friend?
Всем здравствуйте. Есть такой вопрос: при перегрузке операторов в классе(пусть будут + и = (вообще неважно, за исключением потока)) как и...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов prin
Братаны, выручайте!:help: Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов pri
Братаны, выручайте! Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

8
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.08.2015, 17:21
Цитата Сообщение от levgen Посмотреть сообщение
"Для каких целей перегруженный оператор в friend-функции используется?"
Вопрос точно так звучит?

Добавлено через 4 минуты
Или: "В каких случаях, при перегрузке операторов класса, исполузются friend-функциии?"
0
 Аватар для levgen
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
28.08.2015, 17:22  [ТС]
lss, перед этим был вопрос - "Оператор присваивания может ли быть friend-функцией?", ответ - "не может", далее у меня спросили этот вопрос -"Для каких целей перегруженный оператор в friend-функции используется?".
Я так думаю, что здесь имеется в виду вообще перегруженный оператор не важно какой. Хотя если есть фишки в разнице между ними в friend-функциях тоже хотелось бы услышать. А так формулировка вопроса слово в слово
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
28.08.2015, 17:22
Вопрос с разряда " Почем виноградный велосипед моряку?" - но предпологаю, что спрашивали про
C++
1
friend ostream& operator<<(ostream& os, const Date& dt);
0
 Аватар для levgen
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
28.08.2015, 17:25  [ТС]
Цитата Сообщение от lss Посмотреть сообщение
Или: "В каких случаях, при перегрузке операторов класса, исполузются friend-функциии?"
может препод имел в виду это, но сформулировал по своему. Затрудняюсь ответить.
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
29.08.2015, 14:11
При перегрузке оператора, первым параметром которого не может быть экземпляр самого класса, и если в реализации этого оператора нужно обращаться к защищённым/приватным членам класса.
Естественно, речь идёт только о бинарных операторах.
1
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
29.08.2015, 16:10
Лучший ответ Сообщение было отмечено levgen как решение

Решение

Цитата Сообщение от levgen Посмотреть сообщение
"Для каких целей перегруженный оператор в friend-функции используется?"
Когда нужна перегрузка оператора в парметр которого принимается объект другого класса и этот параметр стоит слева.

т.е

C++
1
friend Coord operator+(int i,const Coord& obj);//   int слева
C++
1
ob1= 10 + ob2;
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
29.08.2015, 17:01
Еще один случай, когда требуется неявное преобразование типа левого операнда в бинарном операторе, например, чтобы прибавить к целому числу комплексное.
1
 Аватар для levgen
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
29.08.2015, 20:53  [ТС]
Благодарю всех за помощь. Если будут у кого-то еще идеи, то напишите пожалуйста, если не сложно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2015, 20:53
Помогаю со студенческими работами здесь

Дружественные (friend) функции
Доброго времени суток. Кратко о сути: Имеются 2 класса - Float (представляет собой число типа float) и FloatMatrix (представляет собой...

Не работают friend функции
Есть класс Student, где объявлены дружественные функции: #pragma once #include &lt;iostream&gt; #include &lt;string&gt; #include...

friend и member функции
Народ, объясните пожалуйста как пишутся данные функции, принцип их написания, откуда что берется. И несколько примеров пожалуйста....

Реализация friend функции
Есть код. Нужно реализовать вывод ответа через friend. Подскажите пожалуйста как это сделать? Ничего не получается... #include...

Почему ругается в friend функции
std::ostream&amp; operator&lt;&lt;(std::ostream&amp; ost, const Array&amp; Ar) { for(int i=0; i&lt;m_current; i++) ost&lt;&lt;&quot;{&quot;&lt;&lt;arr&lt;&lt;&quot;}&quot;; return ost; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru