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

Перегрузка ввода, ошибка с левым операндом - C++

Восстановить пароль Регистрация
 
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
25.12.2013, 23:04     Перегрузка ввода, ошибка с левым операндом #1
Проблема с перегрузкой ввода.
C++
1
Ошибка  1   error C2678: бинарный ">>": не найден оператор, принимающий левый операнд типа "std::istream" (или приемлемое преобразование отсутствует)   c:\users\алексей\documents\visual studio 2013\projects\инфа8\инфа8\исходный код.cpp 35  1   инфа8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class data
{
private:
    int dd;
    int mm;
    int yyyy;
public:
    data(int _dd, int _mm, int _yyyy)
    {
        dd = _dd;
        mm = _mm;
        yyyy = _yyyy;
    }
    data(std::string str)
    {
        
    }
    int day()
    {
        return dd;
    }
    int month()
    {
        return mm;
    }
    int year()
    {
        return yyyy;
    }
    friend std::istream & operator >> (std::istream & is, data & rfs)
    {
        return  is>> rfs.day() >> rfs.month() >> rfs.year();
    }
    friend std::ostream & operator <<(std::ostream & os,  data & rhs)
    {
        return os << rhs.day() << "." << rhs.month() << "." << rhs.year();
    }
};
Добавлено через 2 часа 30 минут
Проблема актуальна. Скажите же, кто-нибудь, в чем беда у меня?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2013, 23:04     Перегрузка ввода, ошибка с левым операндом
Посмотрите здесь:

перегрузка оператора ввода >> C++
C++ Перегрузка потока ввода
C++ Перегрузка оператора ввода, ошибка
Перегрузка оператора ввода C++
C++ перегрузка ввода
Перегрузка оператора ввода C++
Перегрузка ввода C++
C++ Перегрузка ввода

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
26.12.2013, 00:11     Перегрузка ввода, ошибка с левым операндом #2
мне не ясен ваш код))), не понимаю что это
C++
1
2
3
4
friend std::istream & operator >> (std::istream & is, data & rfs)
    {
        return  is>> rfs.day() >> rfs.month() >> rfs.year();
    }
ну как бы это немного не так надо делать, Вы объявляете дружественную функцию для istream, но сама функция должны же быть в реализации, типа так:
хидер:
C++
1
2
3
4
5
class ...
{...
friend std::istream & operator >> (std::istream & is, data & rfs);
...
};
реализация:
C++
1
2
std::istream& operator >>(std::istream & is, data & rfs)
{...
Angeline
36 / 30 / 2
Регистрация: 21.10.2013
Сообщений: 197
26.12.2013, 01:10  [ТС]     Перегрузка ввода, ошибка с левым операндом #3
abit, вот в том то и дело, что толковой литературы про классы не нашлось, пытаюсь учиться на примерах из сети. Но вот по сути эта проблема не исчезает, если делать по вашему(я попробовала).
Yandex
Объявления
26.12.2013, 01:10     Перегрузка ввода, ошибка с левым операндом
Ответ Создать тему
Опции темы

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