Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
GetShuk
2 / 2 / 1
Регистрация: 06.07.2016
Сообщений: 73
1

Ошибка при перегрузке оператора >>

15.05.2017, 16:52. Просмотров 707. Ответов 3

Приветствую.
Есть 2 класса:
C++
1
2
3
4
5
6
7
8
enum Color { white = 1, red, green, blue, yellow };
class Shape
{
protected:
    Color figureCol;
public:
        //конструкторы-методы
}
C++
1
2
3
4
5
6
7
8
class Circle : public Shape
{
    int radius;
    int center_x, center_y;
public:
       //конструкторы-методы
       friend std::istream& operator>>(std::istream& is, const Circle& ref);
}
Реализация перегрузки:
C++
1
2
3
4
5
std::istream& operator>>(std::istream& is, const Circle& ref)
{
    is >> ref.figureCol >> ref.radius >> ref.center_x >> ref.center_y ; //error
    return is;
}
И на перегрузку выдает 2 ошибки:
1) отсутствует оператор ">>", соответствующий этим операндам
2) не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)
В упор не понимаю, в чем косяк. Пробовал писать через cin, та же ерунда. Инклуды все есть.
Документация глаголит аналогичное: https://msdn.microsoft.com/ru-ru/library/x6aebccc.aspx
Прошу помощи.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2017, 16:52
Ответы с готовыми решениями:

Ошибка при перегрузке оператора +
Имеется класс, который представляет из себя строку и количество символов в ней....

Ошибка при перегрузке оператора cin >>
#include <iostream> using namespace std; ...

Ошибка при перегрузке оператора вывода в файл
Добрый день, есть такой кусок кода: #include <iostream> #include...

Ошибка в перегрузке оператора - при работе с массивами
Текст программы: #include <iostream> #include <windows.h> using namespace...

Ошибка при перегрузке оператора, не знаю как исправить
#pragma once #include <iostream> #include <vector> #define innerVectorType...

3
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
15.05.2017, 16:56 2
const убери.
1
MrGluck
Модератор
Эксперт CЭксперт С++
8086 / 4939 / 1431
Регистрация: 29.11.2010
Сообщений: 13,394
15.05.2017, 16:59 3
Лучший ответ Сообщение было отмечено GetShuk как решение

Решение

Цитата Сообщение от GetShuk Посмотреть сообщение
В упор не понимаю, в чем косяк.
А изменение const объекта, в который данные считываете не смущает?
1
GetShuk
2 / 2 / 1
Регистрация: 06.07.2016
Сообщений: 73
15.05.2017, 17:09  [ТС] 4
MrGluck, nd2, внимательность такая внимательность. Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2017, 17:09

Ошибка в перегрузке оператора
Не пойму в чем дело(( Имеется класс вектор ,вычислил длину,а теперь очу...

Ошибка в перегрузке оператора +=
В строках 42-50 пытаюсь описать перегрузку операции +=, но выдаёт ошибку...

Ошибка в перегрузке оператора =
В классе множество нужно перегрузить оператор = так, чтобы была возможность...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru