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

Зачем нужно возвращать ссылку на объекты потоковых типов? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Extern: Есть ли на данный момент набор инструментов, которые позволили бы использовать другие языки http://www.cyberforum.ru/cpp-beginners/thread1243404.html
Всем доброго времени суток. Часто встречаю использование оператора (если это, конечно, вообще оператор) extern в виде конструкции extern "C". Погуглив немного я выяснил, что оператор принимает любой строковый литера и задался вопросом - а есть ли на данный момент набор инструментов, которые позволили бы использовать другие языки, например Java, Pascal? Спасибо
C++ Пишем рогалик: пояснения по коду и его критика Здравствуйте! Сегодня сел писать рогалик, в процесе возникло несколько вопросов (в виде коментариев в коде): main.cpp #include <iostream> #include <fstream> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread1243393.html
Найти точки пересечения параболы и прямой C++
Не понимаю почему программа работает некоректно. Код компилируется и работает, но программа выдает неверный результат. Собственно сам код: // 007аТочки пересечения линий.cpp: определяет точку входа для консольного приложения. // y = ax^2 + bx + c и y = dx + k #include "stdafx.h" #include <iostream> #include <cmath> #include <locale>
Есть ли разница между подключениями 2-х и 1-ого заголовка? C++
Изучаю Потоковые классы в С++ и неожиданно задался вопросом. Есть ли разница между подключениями 2х заголовков <istream> и <ostream> и одного заголовка <iostream>? Влияет ли это на производительность как-то?
C++ Не получается найти букву в строке http://www.cyberforum.ru/cpp-beginners/thread1243363.html
#include <iostream> using namespace std; int main() { char str={"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"}; //33 буквы + знак окончания char bykva; cout << "Vvedi 1 bykvy " << endl; cin >> bykva; for (int i = 0; i < 33; i++) //ищем введенную букву в массиве
C++ Необходим общий private static-член для всех классов, сгенерированных по шаблону Здравствуйте! Мне необходим общий private static-член для всех классов, сгенерированных по шаблону, и при этом, не хочется засорять пространство имен. Допустимо ли следующее: namespace Program { namespace __implementation { class __Class подробнее

Показать сообщение отдельно
Unifan
 Аватар для Unifan
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 40
16.08.2014, 20:12     Зачем нужно возвращать ссылку на объекты потоковых типов?
В книжке Герберта Шилдта четко и ясно указано, что для того, чтобы перегружать операции ввода-вывода, надо возвращать ссылку на объект потоковых типов, вроде примеров, приведенных ниже.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ostream &operator<<(ostream &stream_left, ThreeD &obj_right)
{
    stream_left << obj_right.x << ", ";
    stream_left << obj_right.y << ", ";
    stream_left << obj_right.z;
 
    return stream_left;
}
 
istream &operator>>(istream &stream_left, ThreeD &obj_right)
{
    cout << "Введите значения X, Y, Z: ";
    stream_left >> obj_right.x >> obj_right.y >> obj_right.z;
    return stream_left;
}
Хочется узнать, почему возвращается именно ссылка на объект, а не сам объект, ведь если принять во внимание тот факт, что istream и ostream - это классы, то получается, что объекты этих классов должны возвращаться и без ссылки, то есть таким образом.
C++ (Qt)
1
2
3
4
5
6
7
8
ostream operator<<(ostream &stream_left, ThreeD &obj_right)
{
    stream_left << obj_right.x << ", ";
    stream_left << obj_right.y << ", ";
    stream_left << obj_right.z;
 
    return stream_left;
}
Из-за чего мы должны возвращать именно ссылку на объекты именно этих классов?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru