powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / why friend functions
7 сообщений из 7, страница 1 из 1
why friend functions
    #34333084
Фотография Paradoxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем !!!

Мучает вопрос, может даже и примитивный ;).

Почему во время перегрузки операторов предпочетают использовать friend func а не member func.
В чем плюс friend func ??
...
Рейтинг: 0 / 0
why friend functions
    #34333176
Unknowner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас книги под рукой нет, но если я не ошибаюсь, friend function используют при множественном наследовании классов...
...
Рейтинг: 0 / 0
why friend functions
    #34333262
для операторов-членов первый аргумент должен быть строго самого класса, неявные преобразования не допускаются

в отличии от операторов-свободных функций
...
Рейтинг: 0 / 0
why friend functions
    #34333489
Фотография Paradoxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Голенков Владимирдля операторов-членов первый аргумент должен быть строго самого класса, неявные преобразования не допускаются

в отличии от операторов-свободных функций

Выходит, что во время использования операторов-членов, у меня всегда должен быть один параметер типо:
Код: plaintext
1.
2.
Test operator + (Test& Var) 
{     return Test(Var.x + this->x, Var.y + this->y) };
а ето нельзя (error C2804: binary 'operator +' has too many parameters)??
Код: plaintext
1.
2.
Test operator + (Test& Var1, Test& Var2)
{      return Test(Var1.nHour + Var2->nHour, Var1.nMin + Var2->nMin);	};

Я так понял, что всегда должен быть один параметер.
...
Рейтинг: 0 / 0
why friend functions
    #34333528
выражение a + b в случае оператора-члена равносильно a.operator+(b)
а для свободной функции: operator+(a, b)

в этом и есть разница: аргумент a в первом случае должен быть строго типа класса, во втором случае (ежели не explicit) то может быть неявно приводим к типу класса
...
Рейтинг: 0 / 0
why friend functions
    #34333844
Фотография Paradoxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо !
...
Рейтинг: 0 / 0
why friend functions
    #34334103
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Paradoxx пишет:

> Почему во время перегрузки операторов предпочетают использовать friend
> func а не member func.

Это не так. Для каких-то операторов применяются только member functions,
для каких-то - можно и так, и так.

> В чем плюс friend func ??

В том, что она симметрична по отношению к своим аргументам. Остальное кажись уже
сказали.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / why friend functions
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]