Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
GetShuk
2 / 2 / 0
Регистрация: 06.07.2016
Сообщений: 72
#1

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

15.05.2017, 16:52. Просмотров 87. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при перегрузке оператора >> (C++):

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

Ошибка при перегрузке оператора cin >> - C++
#include <iostream> using namespace std; /////////////////////////////////////////////////////////// class fraction { ...

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

Ошибка в перегрузке оператора - при работе с массивами - C++
Текст программы: #include <iostream> #include <windows.h> using namespace std; class array { public: array(); ...

Ошибка при перегрузке оператора, не знаю как исправить - C++
#pragma once #include <iostream> #include <vector> #define innerVectorType std::vector<T> template <class T> class Matrix ...

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

3
nd2
2464 / 2053 / 718
Регистрация: 29.01.2016
Сообщений: 6,738
15.05.2017, 16:56 #2
const убери.
1
MrGluck
Модератор
Эксперт CЭксперт С++
7524 / 4662 / 704
Регистрация: 29.11.2010
Сообщений: 12,735
15.05.2017, 16:59 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от GetShuk Посмотреть сообщение
В упор не понимаю, в чем косяк.
А изменение const объекта, в который данные считываете не смущает?
1
GetShuk
2 / 2 / 0
Регистрация: 06.07.2016
Сообщений: 72
15.05.2017, 17:09  [ТС] #4
MrGluck, nd2, внимательность такая внимательность. Спасибо.
0
15.05.2017, 17:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2017, 17:09
Привет! Вот еще темы с ответами:

Ошибка в перегрузке оператора = - C++
В классе множество нужно перегрузить оператор = так, чтобы была возможность присвоить f(x)=const. Подскажите, где ошибка в этом коде. ...

Ошибка в перегрузке оператора += - C++
#include <iostream.h> #include <string.h> #include <windows.h> const int da=256; class stroki { public: stroki(); ...

Ошибка в перегрузке оператора пересечения - C++
Пожалуйста, помогите найти ошибку! При перегрузке оператора пересечения (*) в return tmp возникает ошибка. ООП только учу, поэтому еще...

Предупреждение при перегрузке оператора - C++
Есть вот такой код для созданный для обучения #include <iostream> using namespace std; class complex{ private: ...


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

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

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