0 / 0 / 0
Регистрация: 28.10.2019
Сообщений: 4
|
||||||
1 | ||||||
не получается осуществить перегрузку оператора ввода-вывода28.10.2019, 12:07. Показов 3279. Ответов 5
Метки нет (Все метки)
хочу передать перечисление (enum class Colors) в функцию to_string по ссылке, но при этом при возвращении в консоль возникает ошибка "отсутствуют экземпляры перегружения функции "to_string" (в данном коде ошибка появляется в 126 строке). не пойму как можно реализовать ее перегрузку в данном случае. и еще: если передавать аргументы в функцию to_string по значению, то данной ошибки не возникает и все работает нормально.
вот сам код:
0
|
28.10.2019, 12:07 | |
Ответы с готовыми решениями:
5
Реализовать перегрузку оператора ввода в классе-наследнике Не получается правильно объявить friend перегрузку оператора с использованием шаблонов Добавить перегрузку функций ввода\вывода Перегрузка оператора ввода/вывода |
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
28.10.2019, 12:19 | 2 |
Сообщение было отмечено Basil3K как решение
Решение
Сделай string to_string(const Colors& color)
А 39-ю строчку - ostream& operator << (ostream& out,const Colors& color ); - убери
1
|
0 / 0 / 0
Регистрация: 28.10.2019
Сообщений: 4
|
|
28.10.2019, 12:36 [ТС] | 3 |
То есть, для перегрузки оператора ввода-вывода сделать указатель на константу, чтобы в случае чего не было возможности изменить значения элементов в Colors? правильно ли я понимаю и если нет, то не могли бы вы объяснить мне этот момент ,был бы очень благодарен
0
|
6579 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
28.10.2019, 12:46 | 4 | |||||
Сообщение было отмечено Basil3K как решение
Решение
Это не перезагрузка оператора. Это функция to_string.
Ты пытаешься передать в неё константу - to_string(Colors::BLUE), а их нельзя передавать по обычной ссылке, только по константной, либо по-значению. А вообще, если ты не собираешься изменять объект внутри функции, то лучше его передавать по константной ссылке. Добавлено через 2 минуты Перегрузка оператора
1
|
0 / 0 / 0
Регистрация: 28.10.2019
Сообщений: 4
|
|
28.10.2019, 12:47 [ТС] | 5 |
понял. спасибо большое
0
|
17.06.2021, 19:12 | 6 |
амперсанд перед оператором означает что мы возращяем ссылку на объект ostream ?
ostream& operator <<
0
|
17.06.2021, 19:12 | |
17.06.2021, 19:12 | |
Помогаю со студенческими работами здесь
6
Перегрузка оператора ввода ,вывода Перегрузка оператора ввода вывода Перегрузка оператора ввода вывода Шаблон перегруженого оператора ввода вывода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |