Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2010, 12:42   #11
jammer77
Пользователь
 
Регистрация: 02.06.2010
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Выводи в цикле.
да причем тут как выводить? у меня класс работает двояко. Такая ситуация может повторится на каких то более серьезных вопросах чем вывод на cout. как избежать этого?
jammer77 вне форума Ответить с цитированием
Старый 01.07.2010, 13:18   #12
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

Код:
 int s1 = q1.pop() ,s2 = q1.pop(), s3 = q1.pop();
 std::cout << s1 << s2 << s3 << std::endl;
Код:
cout<<q1.pop()<<",";
cout<<q1.pop()<<",";
cout<<q1.pop()<<endl;
подпись
liljon вне форума Ответить с цитированием
Старый 01.07.2010, 13:25   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А через printf выводить не хочешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.07.2010, 13:50   #14
jammer77
Пользователь
 
Регистрация: 02.06.2010
Сообщений: 16
По умолчанию

По-моему у меня в первом посте есть аналогичное решение этого вопроса...

Как ПРАВИЛЬНО решить этот вопрос? То есть имеется в виду что я передаю этот класс сторонним лицам, а они выводят всеми перечисленными здесь методами и класс работает правильно.
jammer77 вне форума Ответить с цитированием
Старый 01.07.2010, 14:15   #15
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Так что не слева направо и не справа налево, а может быть в любом порядке.
Верю, видела и мне говорили это. Но сколько бы я не сталкивалась с подобной ситуацией, получается слева направо.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 01.07.2010, 16:01   #16
jammer77
Пользователь
 
Регистрация: 02.06.2010
Сообщений: 16
По умолчанию

а теперь внимание правильный ответ. pop() должен возвращать void!! так сделали в STL. Всем спасибо большое.
jammer77 вне форума Ответить с цитированием
Старый 01.07.2010, 20:00   #17
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

пользователь ACE Valery совершенно прав - вычисляется выражение справа налево в виду особенности "спецификации" языка, а выводят по порядку
так сначала вычисляется самый правый и по порядку справа налево, а выводится слева направо
вот и все
и дело получается не в работе класса, а в особенности языка и компилятора

Последний раз редактировалось capta1n; 01.07.2010 в 20:09.
capta1n вне форума Ответить с цитированием
Старый 01.07.2010, 20:00   #18
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Пользователь ACE Valery совершенно прав - вычисляется выражение справа налево в виду особенности "спецификации" языка, а выводят по порядку
так сначала вычисляется самый правый и по порядку справа налево, а выводится слева направо
вот и все
и дело получается не в работе класса, а в особенности языка и компилятора

Последний раз редактировалось capta1n; 01.07.2010 в 20:09.
capta1n вне форума Ответить с цитированием
Старый 01.07.2010, 20:37   #19
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от jammer77 Посмотреть сообщение
а теперь внимание правильный ответ. pop() должен возвращать void!! так сделали в STL. Всем спасибо большое.
Ну да, внезапно, void решил все проблемы )) Он лишь запретил использовать метод в выражениях, что вынудило самостоятельно вызывать функции в правильной последовательности.. ну а причина проблем была уже названа

Цитата:
Сообщение от capta1n, ACE Valery
получается слева направо
так то оно так, но на это поведение не стоит рассчитывать, оно не определено стандартом и может меняться даже в различных версиях одного и того же компилятора
netrino вне форума Ответить с цитированием
Старый 01.07.2010, 21:20   #20
jammer77
Пользователь
 
Регистрация: 02.06.2010
Сообщений: 16
По умолчанию

Цитата:
Сообщение от netrino Посмотреть сообщение
Ну да, внезапно, void решил все проблемы ))
Да, решил.
jammer77 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятное поведение типа J-Max Общие вопросы Delphi 12 10.02.2010 17:15
Вопрос по cout (С++) EniOk Помощь студентам 2 06.12.2009 15:32
Непонятное поведение алгоритма master_root Общие вопросы Delphi 3 11.06.2008 14:32
Непонятное поведение программы на Delphi Kashp Помощь студентам 10 14.12.2007 21:12