1 / 1 / 1
Регистрация: 05.04.2017
Сообщений: 16
1

А что возвращается в потоках вывода в этих кодах?

08.04.2017, 21:30. Показов 567. Ответов 8
Метки нет (Все метки)

Здравствуйте.
Вот есть вспомогательные функции к классу Sales_data. Поясните, что возвращается, какие данные
C++
1
return os
и
C++
1
return is
.

Сами функции вот:

C++
1
2
3
4
5
6
std::ostream &print(std::ostream &os, const Sales_data &item)
{
 
    os << item.isbn() << " " << item.units_sold << " " << item.revenue << " " << item.avg_price();
    return os;
    }
C++
1
2
3
4
5
6
7
8
9
10
std::istream &read(std::istream &is, Sales_data &item)
 
{
 
 
    double price = 0;
    is >> item.bookNo >> item.units_sold >> price;
    item.revenue = price*item.units_sold;
    return is;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2017, 21:30
Ответы с готовыми решениями:

Добавление в базу данных,в этих кодах есть ошибки ?
&lt;form action=&quot;insert1.php&quot; method=&quot;post&quot; name=&quot;form&quot;&gt;&lt;/p&gt; &lt;p&gt;введите имя:&lt;input...

Задача на сортировку в коллекции в потоках ввода - вывода
добрый день. есть задача : Вывести все строки текстового файла в алфавитном порядке. я это...

Если возвращается переменная ссылочного типа, то возвращается объект или просто ссылка
Почему-то авторы всегда акцентируют внимание на передачу параметров в функцию, а на возврат не...

Считая, что в этих строках находятся очень длинные числа, сформируйте третью строку- сумму этих чисел.
Вот сама задача: Даны две символьные строки, состоящие только из цифр (длина каждой более 10...

8
283 / 231 / 114
Регистрация: 07.09.2016
Сообщений: 584
08.04.2017, 21:45 2
возвращаются ссылки на потоки, которые в функции первыми аргументами передали.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
08.04.2017, 21:51 3
выше правильно написали а так то просто перегрузки делать вот так
C++
1
2
3
4
5
6
7
std::istream &operator>>(std::istream &is, Sales_data &item)
 
{
 
    is >> item.bookNo >> item.units_sold >> price;
    return is;
}

и использовать так
C++
1
2
3
Sales_data b();
 
cin>>b;
1
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
08.04.2017, 21:55 4
Цитата Сообщение от Antikl Посмотреть сообщение
и использовать так
Если только так использовать, то можно и ничего не возвращать. Возврат потока делают для того, чтобы можно было и так использовать:
C++
1
2
3
Sales_data a, b;
 
cin >> a >> b;
0
141 / 142 / 64
Регистрация: 11.11.2010
Сообщений: 864
Записей в блоге: 10
08.04.2017, 21:56 5
Почему бы не:
C++
1
2
3
4
5
6
7
8
9
std::ostream &print(std::ostream &os, const Sales_data &item)
{
    return os << item.isbn() << " " << item.units_sold << " " << item.revenue << " " << item.avg_price();
}
 
std::istream &operator>>(std::istream &is, Sales_data &item)
{ 
    return is >> item.bookNo >> item.units_sold >> price;
}
?
1
1 / 1 / 1
Регистрация: 05.04.2017
Сообщений: 16
08.04.2017, 22:56  [ТС] 6
Почему бы не:

C++
1
2
3
4
5
6
7
8
9
std::ostream &print(std::ostream &os, const Sales_data &item)
{
    return os << item.isbn() << " " << item.units_sold << " " << item.revenue << " " << item.avg_price();
}
 
std::istream &operator>>(std::istream &is, Sales_data &item)
{ 
    return is >> item.bookNo >> item.units_sold >> price;
}
?
Вот так стало намного понятнее) В точку вызова возвращается сам ввода значений, или вывод))) А то я запутался....

Добавлено через 2 минуты
выше правильно написали а так то просто перегрузки делать вот так

C++
1
2
3
4
5
6
7
std::istream &operator>>(std::istream &is, Sales_data &item)
 
{
 
    is >> item.bookNo >> item.units_sold >> price;
    return is;
}
и использовать так

C++
1
2
3
Sales_data b();
 
cin>>b;
Я пока до перегрузки операторов не дошел, это еще впереди Я новичок, классы изучаю, медленно правда...
1
141 / 142 / 64
Регистрация: 11.11.2010
Сообщений: 864
Записей в блоге: 10
08.04.2017, 23:36 7
Цитата Сообщение от Vikings3 Посмотреть сообщение
Вот так стало намного понятнее) В точку вызова возвращается сам ввода значений, или вывод)))
А именно ссылки на экземпляры классов потоков:
C++
1
std::istream &
C++
1
std::ostream &
выполняющих этот ввод/вывод.

Цитата Сообщение от Vikings3 Посмотреть сообщение
Я пока до перегрузки операторов не дошел
Это:
Цитата Сообщение от GoldenId Посмотреть сообщение
C++
1
2
3
4
std::istream &operator>>(std::istream &is, Sales_data &item)
{ 
    return is >> item.bookNo >> item.units_sold >> price;
}
и есть перегруженный оператор.
1
1 / 1 / 1
Регистрация: 05.04.2017
Сообщений: 16
09.04.2017, 13:09  [ТС] 8

GoldenId,
да я узнал что это перегруженный оператор, я листал вперед в книге Но до практики не дошел еще...

Добавлено через 45 минут
Вопрос - Без перегрузки операторов эти функции работать не будут?
Почему в книге про это не сказали....нужно вперед листать...до перегрузки
...
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
09.04.2017, 15:26 9
Цитата Сообщение от Vikings3 Посмотреть сообщение
Вопрос - Без перегрузки операторов эти функции работать не будут?
Будут, если то, что используется при выводе, находится в public разделе класса, или эти функции friend для класса.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2017, 15:26
Помогаю со студенческими работами здесь

Что возвращается?
Longs :: TInteger Longs :: TInteger :: operator -= (const ...

Возвращается не то, что было помещено в массив
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR*...

Не возвращается результат функции, что делать?
#include &lt;iostream&gt; #define N 10 using namespace std; int *SortedArray(int a) { int m;...

Даны 2 строки. Верно ли, что сумма длин этих строк кратно произведению этих строк
даны 2 строки. Верно ли, что сумма длин этих строк кратно произведению этих строк, а так же первая...

операторы ввода и вывода, форматы используемые в этих операторах {c++}
операторы ввода и вывода, форматы используемые в этих операторах... помогите плиз очень надо.......

Получение строки из интернета при помощи DownloadString. Возвращается не то, что нужно
Помогите пожалуйста var wc = new WebClient(); String xmlStr =...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru