Форум программистов, компьютерный форум CyberForum.ru

Сколько используется параметров при перегрузке унарных операторов как френд-функций? - C++

Восстановить пароль Регистрация
 
Спайдермэн
0 / 0 / 0
Регистрация: 04.05.2014
Сообщений: 125
30.06.2014, 14:46     Сколько используется параметров при перегрузке унарных операторов как френд-функций? #1
Вопрос следующий интересует: При перегрузке унарных операторов как френд-функций сколько используется параметров? Также при перегрузке ун.операторов как методы класса сколько параметров?

Добавлено через 23 секунды
При перегрузке бинаных операторов, всегда 2 параметра?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2014, 14:46     Сколько используется параметров при перегрузке унарных операторов как френд-функций?
Посмотрите здесь:

При перегрузке операторов не записывает значение C++
Ошибка при перегрузке операторов. C++
Перегрузка унарных операторов C++
О перегрузке операторов C++
Ошибка при перегрузке операторов в классе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4301 / 3722 / 1255
Регистрация: 14.04.2014
Сообщений: 14,556
30.06.2014, 14:50     Сколько используется параметров при перегрузке унарных операторов как френд-функций? #2
У friend будет на 1 параметр больше.
Спайдермэн
0 / 0 / 0
Регистрация: 04.05.2014
Сообщений: 125
30.06.2014, 15:00  [ТС]     Сколько используется параметров при перегрузке унарных операторов как френд-функций? #3
это вы о перегрузке унарных операторов как френд? 2 параметра?
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
30.06.2014, 15:17     Сколько используется параметров при перегрузке унарных операторов как френд-функций? #4
Цитата Сообщение от Спайдермэн Посмотреть сообщение
При перегрузке унарных операторов как френд-функций сколько используется параметров?
пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class a
{
public:
a(int b):x(b){};
friend a& operator++(a& a2)
    {
    a2.x+=1;
    return a2;
    }
a& operator++()
    {
      x++;
      return *this;
    }
int x;
};
смысл в том, что когда перегружается оператор как метод класса, то при компиляции он вызывается как функция, содержащая вызываемый объект, т.е. она содержит вызывающий объект внутри себя, он же - this, когда мы перегружаем оператор через дружественную функцию - то она не имеет понятия ничего о вызывающем объекте, и обращатсья к выз объекту через this нельзя - отсюда и доп аргумент в функции.
В С.Прата в перегрузках это подробно расписано, советую почитать.
Yandex
Объявления
30.06.2014, 15:17     Сколько используется параметров при перегрузке унарных операторов как френд-функций?
Ответ Создать тему
Опции темы

Текущее время: 17:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru