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

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

Войти
Регистрация
Восстановить пароль
 
MEPTPAH
22 / 12 / 4
Регистрация: 07.08.2012
Сообщений: 109
#1

Перегрузка оператора ввода - C++

01.11.2012, 19:50. Просмотров 834. Ответов 6
Метки нет (Все метки)

почему не работает следующий код?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class obj
{
    unsigned int book_id;
    string title;
    unsigned price;
public:
    obj(string i = "None", unsigned int b = 0, unsigned int p = 0): title(i), book_id(b), price(p) { }
    
    friend istream& operator>> (istream& in, const obj &rhs);
};
 
istream& operator>> (istream& in, const obj &rhs) {
    in >> rhs.title >>/*ругается, мол оператор не соответствует операндам*/ rhs.book_id >> rhs.price;
    return in;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2012, 19:55     Перегрузка оператора ввода #2
#include <string> сделан?
MEPTPAH
22 / 12 / 4
Регистрация: 07.08.2012
Сообщений: 109
01.11.2012, 19:56  [ТС]     Перегрузка оператора ввода #3
Цитата Сообщение от alsav22 Посмотреть сообщение
#include <string> сделан?
C++
1
2
#include <iostream>
#include <string>
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2012, 20:00     Перегрузка оператора ввода #4
C++
1
friend const istream& operator>> (istream& in, obj &rhs);
MEPTPAH
22 / 12 / 4
Регистрация: 07.08.2012
Сообщений: 109
01.11.2012, 20:04  [ТС]     Перегрузка оператора ввода #5
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
friend const istream& operator>> (istream& in, obj &rhs);
C++
1
2
3
4
5
6
7
8
9
10
11
12
class obj
{
//...
public:
friend const istream& operator>> (istream& in, obj &rhs);
//...
};
 
const istream& operator>> (istream& in, const obj &rhs) {
    in >> rhs.title >> rhs.book_id >> rhs.price;
    return in;
}
без изменений
alsav22
5413 / 4809 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.11.2012, 20:52     Перегрузка оператора ввода #6
В 9 строке const уберите:
C++
1
2
3
4
const istream& operator>> (istream& in, obj &rhs) {
    in >> rhs.title >> rhs.book_id >> rhs.price;
    return in;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2012, 22:08     Перегрузка оператора ввода
Еще ссылки по теме:

Перегрузка оператора ввода C++
В чем ошибка? Перегрузка оператора ввода\вывода C++
Перегрузка оператора ввода C++
Перегрузка оператора ввода >> C++
C++ Перегрузка оператора ввода для класса с динамическими данными

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

Или воспользуйтесь поиском по форуму:
MEPTPAH
22 / 12 / 4
Регистрация: 07.08.2012
Сообщений: 109
01.11.2012, 22:08  [ТС]     Перегрузка оператора ввода #7
Спасибо) заработало!
Yandex
Объявления
01.11.2012, 22:08     Перегрузка оператора ввода
Ответ Создать тему
Опции темы

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