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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

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

03.11.2013, 20:23. Просмотров 366. Ответов 12
Метки нет (Все метки)

На первом скриншоте видно, что в некотором методе 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 метода
Посмотрите здесь:

Return type метода - C++
Проблема состоит в том, что при выводе массива, выдод имени работает неправильно. main.cpp #include "stdafx.h" #include...

return (n<0) ? -n:n; - C++
Что это означает, return (n&lt;0) ? -n:n; не как не могу понять? Может быть это как if (n&lt;0) return true; else false; ...

return и ptheread - C++
Вот код создание двух потоков... #include&quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;pthread.h&gt; #include...

return *char - C++
если функция дожна возвращать строку... как это сделать? я написала так: char* GetString(char *filename) { FILE *f1; char...

Вопрос по return - C++
Написал код: #include&lt;iostream&gt; using namespace std; #include&lt;windows&gt; int Func1(int arg1); //функция, прибавляющая к...

return + char* - C++
Как я понимаю, он вернет всякую чушь, потому что локальная переменная m уничтожается по завершению функции. Тогда нужно выделять память с...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,655
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
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,655
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
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,655
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
Модератор
6542 / 5008 / 461
Регистрация: 14.02.2011
Сообщений: 16,655
04.11.2013, 09:06     Странное с return метода #8
Цитата Сообщение от nexen Посмотреть сообщение
ValeryS, оказалось, что это было из-за типа Release проекта. В Debug всё впорядке. Но почему? Конечно, в релизной версии нет большого кол-ва проверок, которые есть в Debug, но разве это должно мешать дебажить его по брекпоинтам? :/
в релиз версии уже поработал оптимизатор
и твой код изменился, до неузнаваемости и видать твоя точка останова попала на другой участок кода
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
04.11.2013, 12:22     Странное с return метода #9
Дебажить в релизной версии ... что-то новенькое.
Croessmah
04.11.2013, 16:25
  #10

Не по теме:

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

Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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 метода
Еще ссылки по теме:

With return value 3221226356 - C++
Пишу функцию которая выделяет память под массив по мере его заполнения. #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace...

Оператор return - C++
Помогите пожалуйста разобраться как работает оператор return. Что происходит после return n и после return fibonacci (n-1) + fibonacci...

Оператор return - C++
Всем привет, мне необходимо передать полученный массив в другой файл, читала где-то, что это можно сделать при помощи оператора return, но...

return зачем он? - 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 метода
Ответ Создать тему
Опции темы

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