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

Странное с return метода - C++

Восстановить пароль Регистрация
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
03.11.2013, 20:23     Странное с return метода #1
На первом скриншоте видно, что в некотором методе update() указатель this указывает на.. эм.. что-то страшное, хотя всё должно быть нормально (при этом объект, естественно, присутствует и имеет корректные значения).
На втором скриншоте показан метод (состоит только из return) getParentPosition. Как видно, parent есть и его позиция 90 по Х.
На третьем (1 в изображениях) видно, чему равна переменная, после выполнения getParentPosition.
Что это за магия?

На четвертом скриншоте (3 в миниатюре) ещё частичка магии. Метод update() сцены. Объекты заданы корректно (уверен потому, что они выводятся на экран в нужном количестве без ошибок), но..
Миниатюры
Странное с return метода   Странное с return метода   Странное с return метода  

Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2013, 20:23     Странное с return метода
Посмотрите здесь:

C++ В чем разница между return и return false/true
C++ Return
C++ return
Return C++
C++ return (n<0) ? -n:n;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
03.11.2013, 20:24     Странное с return метода #2
Цитата Сообщение от nexen Посмотреть сообщение
На первом скриншоте видно,
не поверишь не видно?
да и листинг бы
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
03.11.2013, 20:27  [ТС]     Странное с return метода #3
ValeryS, кликабельно
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
03.11.2013, 20:33     Странное с return метода #4
О картиночки появились
по поводу первого скриншота
this имеет значение 0
значит ни о каком объекте не может быть и речи
посему кусок кода и фотку с отладчика с брекпоинтом
судя по оформлению у тебя VS если да какая версия?
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
03.11.2013, 21:13  [ТС]     Странное с return метода #5
ValeryS, vs2008. Фишка в том, что Locals не в watch, так что я его не мог добавить сам. Он в Auto. Да и все-таки поля он выдал, но значения у них некорректны
Миниатюры
Странное с return метода  
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
03.11.2013, 21:18     Странное с return метода #6
Цитата Сообщение от nexen Посмотреть сообщение
vs2008.
у меня тоже
скинь проект посмотрю когда время будет
да и проблему опиши
а то по скриншотам трудно понять
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
04.11.2013, 06:50  [ТС]     Странное с return метода #7
ValeryS, оказалось, что это было из-за типа Release проекта. В Debug всё впорядке. Но почему? Конечно, в релизной версии нет большого кол-ва проверок, которые есть в Debug, но разве это должно мешать дебажить его по брекпоинтам? :/
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
04.11.2013, 09:06     Странное с return метода #8
Цитата Сообщение от nexen Посмотреть сообщение
ValeryS, оказалось, что это было из-за типа Release проекта. В Debug всё впорядке. Но почему? Конечно, в релизной версии нет большого кол-ва проверок, которые есть в Debug, но разве это должно мешать дебажить его по брекпоинтам? :/
в релиз версии уже поработал оптимизатор
и твой код изменился, до неузнаваемости и видать твоя точка останова попала на другой участок кода
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
04.11.2013, 12:22     Странное с return метода #9
Дебажить в релизной версии ... что-то новенькое.
Croessmah
04.11.2013, 16:25
  #10

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Дебажить в релизной версии ... что-то новенькое.
Почему? Тут на форуме есть темы с таким подходом )))

Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
04.11.2013, 16:53     Странное с return метода #11
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


Почему? Тут на форуме есть темы с таким подходом )))

Куда смотреть?
Croessmah
04.11.2013, 17:03
  #12

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Куда смотреть?
А черт его знает. Но на форуме не одна тема, в которой жалуются мол отладчик не правильно показывает и, как потом выяснялось, это потому что Release режим. В общем проблема не новая уже )))

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2013, 07:02     Странное с return метода
Еще ссылки по теме:

return *this; C++
C++ Передача метода класса в качестве параметра для метода другого класса
C++ return

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

Или воспользуйтесь поиском по форуму:
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
06.11.2013, 07:02  [ТС]     Странное с return метода #13
Croessmah, всё просто. Проверял производительность в релизном режиме, ибо дебаг ни разу не показатель. Ушел спать. На следующее утро забыл. Вот и вся история
Yandex
Объявления
06.11.2013, 07:02     Странное с return метода
Ответ Создать тему
Опции темы

Текущее время: 03:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru