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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Extern: Есть ли на данный момент набор инструментов, которые позволили бы использовать другие языки http://www.cyberforum.ru/cpp-beginners/thread1243404.html
Всем доброго времени суток. Часто встречаю использование оператора (если это, конечно, вообще оператор) extern в виде конструкции extern "C". Погуглив немного я выяснил, что оператор принимает любой...
C++ Пишем рогалик: пояснения по коду и его критика Здравствуйте! Сегодня сел писать рогалик, в процесе возникло несколько вопросов (в виде коментариев в коде): main.cpp #include <iostream> #include <fstream> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread1243393.html
Найти точки пересечения параболы и прямой C++
Не понимаю почему программа работает некоректно. Код компилируется и работает, но программа выдает неверный результат. Собственно сам код: // 007аТочки пересечения линий.cpp: определяет точку...
Есть ли разница между подключениями 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 >>...
C++ Необходим общий private static-член для всех классов, сгенерированных по шаблону Здравствуйте! Мне необходим общий private static-член для всех классов, сгенерированных по шаблону, и при этом, не хочется засорять пространство имен. Допустимо ли следующее: namespace Program... подробнее

Показать сообщение отдельно
Убежденный
Ушел с форума
Эксперт С++
15708 / 7219 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
16.08.2014, 23:24
Цитата Сообщение от Unifan Посмотреть сообщение
Хочется узнать, почему возвращается именно ссылка на объект, а не сам объект
Я отвечу кодом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
using namespace std;
 
struct mystream
{
    string AllData;
};
 
mystream operator << (mystream Stream, string Data)
{
    Stream.AllData += Data;
    return Stream;
}
 
int main()
{
    mystream Stream;
    Stream << "Hello" << ", " << "World!";
    cout << Stream.AllData << endl;
    return 0;
}
> (пусто)
А теперь перепишем оператор вывода "по учебнику":
C++
1
2
3
4
5
mystream & operator << (mystream & Stream, string Data)
{
    Stream.AllData += Data;
    return Stream;
}
> Hello, World!
Задумайтесь [think about ], какое поведение более ожидаемо для
объектов cout/ofstream и т.п.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.