Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Mirmik
techpriest
631 / 210 / 57
Регистрация: 27.02.2014
Сообщений: 1,159
1

Порядок подстановки функций в ostream выводе

29.11.2015, 17:06. Просмотров 314. Ответов 1
Метки нет (Все метки)

А почему

C++
1
2
3
4
5
6
7
8
9
10
11
class III{
  int i;
  public:
  III():i(0){};
  int operator()() {return ++i;} 
  }a;
 
 
void main() {
  os << a() << a() << a(); 
};
выводит на печать 321, а не 123?

это же вроде как print(print(print(cout,a()),b()),c());
Получается, что компилятор сначала расчитывает c(), потом b(), потом a().
Почему в таком снаружи? Почему не изнутри?

Добавлено через 8 минут
upd...
C++
1
2
3
4
void ccc(int f, int s){os<< f;
os<<s;};
 
ccc(a(),a());
Вот. При передаче в функцию тоже самое. Сначала расчитывается второй элемент.
Это всегда так или от компилятора зависит?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2015, 17:06
Ответы с готовыми решениями:

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка?
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size; ix++) cout &lt;&lt;...

friend ostream &operator<<(ostream &stream, MyClass o);
Что означает данная строчка которую обычно пишут в конце класса? friend ostream...

Friend ostream& operator<<(ostream& stream, CArr& obj);
CArr.h #pragma once class CArr{ int* arr = nullptr; int size = 10; void swap(int *a, int...

Порядок работы функций
Всем доброго времени суток! Написал архиватор, но проблема в том, что он работает только в случае...

Порядок объявления функций
народ, я хочу чтобы в моём файле .cpp, после инклюдов в алфавитном порядке и до main(), шли...

1
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
29.11.2015, 17:22 2
Насколько я понимаю, это не регламентируется и в разных случаях может вычисляться по-разному.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2015, 17:22

Порядок выполнения функций
Добрый день. Подскажите пожалуйста, почему сначала выдается сообщение с нижнего блока (cout &lt;&lt;...

Порядок написания функций
Только начал учиться программировать. Visual studio 2010 при компиляции пишет, что factorial не...

Просмотреть порядок вызова функций в отладчике vs 2013
Собственно, вопрос - как? У меня есть проект на си, с огромным количеством файлов и функций. Нужно...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.