Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
|
||||||
1 | ||||||
Перегрузка операторов <<, >>22.08.2017, 16:40. Показов 530. Ответов 7
Метки нет (Все метки)
у меня есть класс, к примеру
0
|
22.08.2017, 16:40 | |
Ответы с готовыми решениями:
7
Что такое "перегрузка операторов"? Каковы принципы работы перегруженных операторов и назначение указателя this Перегрузка операторов Перегрузка операторов /=, +=, -= перегрузка операторов |
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
|
||||||
22.08.2017, 17:01 | 2 | |||||
0
|
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
|
||||||
22.08.2017, 17:38 [ТС] | 3 | |||||
Notoriously, разве
Добавлено через 7 минут и желательно, можете расписать что есть что? а то я вижу, что вы делаете, но не понимаю
0
|
79 / 67 / 28
Регистрация: 22.04.2016
Сообщений: 384
|
||||||
22.08.2017, 18:02 | 5 | |||||
std::ostream с именем output и константную ссылку на number с именем other . Выводит значение output << other._value; Функция operator<< возвращает output как ссылку на std::ostream . Что разрешает каскадирование операции вывода.Добавлено через 1 минуту По std::istream& operator >> все аналогично std::ostream& operator <<
0
|
308 / 271 / 220
Регистрация: 14.11.2016
Сообщений: 1,049
|
|||||||||||
22.08.2017, 18:18 | 6 | ||||||||||
std::ostream &output - левый операндconst number &other - правый операндЕсли бы можно было делать что-то наподобие такого:
При использовании подобной конструкции возвращаемый_тип operator оператор (правый_операнд); подразумевается то, что левым операндом ВСЕГДА будет объект класса для которого реализуется перегрузка. По этому используем конструкцию friend возвращаемый_тип operator оператор (левый_операнд, правый_операнд);
0
|
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
|
|
22.08.2017, 18:34 [ТС] | 7 |
так как правильно то?
0
|
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
|
||||||
22.08.2017, 19:21 | 8 | |||||
GeFacle,
Вам же написали. Перегружать ввод / вывод можно только дружественной функцией, так как функция-член всегда принимает первым операндом адрес самого объекта - тот самый this. А здесь нам нужно принять первым операндом поток, с которым мы работаем. std :: cin и std :: cout - также объекты классов и они и являются "левым операндом" при перегрузке операторов вывода. Но вы можете не делать ее дружественной, как написал GbaLog-. Добавлено через 17 минут Вот перегрузка операторов ввода/вывода где используется оба варианта - и дружественная функция и обычная. Для обычной функции, как выше упомянул, GbaLog-, необходим так называемый геттер - функция, предоставляющая доступ к закрытым данным пользователю (в данном случае пользователь - функция, перегружающая оператор).
0
|
22.08.2017, 19:21 | |
22.08.2017, 19:21 | |
Помогаю со студенческими работами здесь
8
Перегрузка операторов Перегрузка операторов Перегрузка операторов перегрузка операторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |