4 / 4 / 2
Регистрация: 04.08.2013
Сообщений: 20
|
||||||
1 | ||||||
Классы и объекты01.09.2013, 21:23. Показов 1110. Ответов 11
Метки нет Все метки)
(
Такая ситуация: есть кусочек кода, не несущего смысловой нагрузки.
0
|
|
01.09.2013, 21:23 | |
Ответы с готовыми решениями:
11
объекты и классы
|
4 / 4 / 2
Регистрация: 04.08.2013
Сообщений: 20
|
||||||
01.09.2013, 21:49 [ТС] | 4 | |||||
Я проверял с обычными целыми числами, при этих данных а на выходе будет 100. Суть не в цикле, а в том что он не работает. Это собственно весь код в main, плюс описание и ввод переменных и вывод на экран. Описание класса в заголовочном файле. В условии цикла по идее будет TRUE, пока а не станет раной 100, но он выполняется только один раз и выходит. не пойму почему. уже чего только не делал.
оно почему-то возвращает false. буду смотреть функцию
0
|
120 / 120 / 47
Регистрация: 29.03.2013
Сообщений: 237
|
|
01.09.2013, 22:08 | 6 |
Делайте точку останова и смотрите, что происходит в вашем цикле.
0
|
4 / 4 / 2
Регистрация: 04.08.2013
Сообщений: 20
|
|
02.09.2013, 00:38 [ТС] | 7 |
Спасибо за помощь)
0
|
Комп_Оратор)
![]() |
|
02.09.2013, 02:58 | 8 |
Где логика? Посмотрите свою фразу и увидьте, что цикл работает, а сравнение либо увеличение, - нет . Чудес не бывает. Либо сравнивается не давая нужного булевого значения, либо инкремент перегружен неверно. Проверьте отдельно и то и другое. Иначе покажите.
0
|
4 / 4 / 2
Регистрация: 04.08.2013
Сообщений: 20
|
|
02.09.2013, 10:35 [ТС] | 9 |
Я думал тут проблема иного рода
![]()
0
|
942 / 686 / 229
Регистрация: 28.04.2013
Сообщений: 1,924
|
|
02.09.2013, 13:08 | 10 |
Вас же в первом же ответе попросили показать весь код
![]()
1
|
Комп_Оратор)
![]() |
|
02.09.2013, 13:14 | 11 |
Интересно, что в первой итерации a<b и единица прибавляется. А потом нет. И ели виноват конструктор, то возможно он используется для сравнения или инкрементирования. А может и нет. Ноги затекли от позы "лотос", - ничего не вижу.
![]() Главное, что ошибка нашлась. ![]()
0
|
4 / 4 / 2
Регистрация: 04.08.2013
Сообщений: 20
|
||||||
02.09.2013, 19:43 [ТС] | 12 | |||||
Во время операции инкрементирования создаются временные объекты с помощью конструктора с одним аргументом. Для различия положительных и отрицательных чисел использую поле типа bool, которое указывает на данное различие(истина - отрицательное, ложь - положительное). Ошибка происходила из-за того что в конструкторе не задавалось явное значение этого параметра, и оно устанавливалось в TRUE при создании объекта с положительным значением. В результате этого дальнейшие сравнения проходили не корректно, и происходил выход из цикла. Добавил строчку в конструктор, которая при создание объекта устанавливала этот параметр в FALSE и все заработало.
Весь код находится тут. кому интересно
0
|
02.09.2013, 19:43 | |
Помогаю со студенческими работами здесь
12
Классы и объекты Классы и объекты Классы и объекты в С++ Классы и объекты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |