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

Оператор =. Не могу найти объяснение ситуации - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ подробно объяснить каждое действие программы http://www.cyberforum.ru/cpp-beginners/thread571733.html
#include "stdafx.h" #include <iostream> #include <string> using namespace std; int main() { fstream f; f.open("text.txt", ios::in); if (!f.is_open())
C++ Проверить является ли слово палиндромом Символьная строка содержит одно слово. Проверить, будет ли оно читаться одинаково справа налево и слева направо (т.е. является ли оно палиндромом). есть наброски кода: void main() { int i,j=0;... http://www.cyberforum.ru/cpp-beginners/thread571731.html
Матрицы. Удаление строк. C++
Помогите решить задачку Описать процедуру RemoveRows(A, M, N, K1, K2), удаляющую из вещественной матрицы A размера M × N строки с номерами от K1 до K2 включительно (предполагается, что 1 < K1 ≤...
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N C++
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N), чтобы сумма цифр в клетках, через которые он пролегает, была...
C++ Разработать иерархию классов http://www.cyberforum.ru/cpp-beginners/thread571700.html
Подъемный кран. Необходимо разработать иерархию классов.В каждом классе иерархии нужно предусмотреть: 1)Наличие не менее 3х конструкторов 2)Виртуальный деструктор 3)Перезагрузка операции....
C++ Error C2109: для индекса требуется массив или указатель #include <stdio.h> #include <conio.h> int const max_widht=3; int const max_height=3; int minmax (int min, int max, int val, int max_height, int max_widht, int* m) { int i,max_w, min_w; ... подробнее

Показать сообщение отдельно
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440

Оператор =. Не могу найти объяснение ситуации - C++

11.05.2012, 21:56. Просмотров 376. Ответов 7
Метки (Все метки)

вот этот код работает безошибочно и выдаёт всегда верные результаты
C++
1
2
3
4
5
6
7
8
            qDebug() << "oX[0] = " << pixelToRealX(zoomRect.x() + ( zoomRect.width() < 0 ) * zoomRect.width());
            qDebug() << "oX[1] = " << pixelToRealX(zoomRect.x() + ( zoomRect.width() > 0 ) * zoomRect.width());
            GLfloat cnt = pixelToRealX(zoomRect.x() + ( zoomRect.width() > 0 ) * zoomRect.width());
            *oX = pixelToRealX(zoomRect.x() + ( zoomRect.width() < 0 ) * zoomRect.width());
            oX[1] = cnt;
            oX[2] = 0.;
            qDebug() << "oX[0] = " << *oX;
            qDebug() << "oX[1] = " << oX[1] << cnt << oX[1] - cnt;
а этот, в свою очередь, всегда работает не так как можно ожидать...
C++
1
2
3
4
5
6
7
            qDebug() << "oX[0] = " << pixelToRealX(zoomRect.x() + ( zoomRect.width() < 0 ) * zoomRect.width());
            qDebug() << "oX[1] = " << pixelToRealX(zoomRect.x() + ( zoomRect.width() > 0 ) * zoomRect.width());
            *oX = pixelToRealX(zoomRect.x() + ( zoomRect.width() < 0 ) * zoomRect.width());
            oX[1] = pixelToRealX(zoomRect.x() + ( zoomRect.width() > 0 ) * zoomRect.width());
            oX[2] = 0.;
            qDebug() << "oX[0] = " << *oX;
            qDebug() << "oX[1] = " << oX[1];
гипотезы? предположения? какие числа выпадут в консоль если pixelToRealX - константный метод не меняющий аргументы
Код
oX[0] =  -0.508466 
oX[1] =  0.508466 
oX[0] =  -0.508466 
oX[1] =  1.61194 

oX[0] =  -3.01448 
oX[1] =  2.52417 
oX[0] =  -3.01448 
oX[1] =  2.53666 

oX[0] =  -2.02176 
oX[1] =  -0.484253 
oX[0] =  -2.02176 
oX[1] =  0.161972

oX[0] =  -2.00282 
oX[1] =  -0.397635 
oX[0] =  -2.00282 
oX[1] =  -0.392783
вот несколько примеров чисел попадающих в отладочную консоль... первая пара чисел всегда расчитана верно и всё путём... третье число, соответственно тоже. четвёртое - всегда ошибочно
oX объявлено как GLfloat oX[3]
pixelToRealX - функция inline GLfloat pixelToRealX(GLuint p) const { return XBegin() + ( XWidth() / linePlant.width() ) * (p - linePlant.x()); }
zoomRect и linePlant - надёжные библиотечные структуры данных.

Помогите разобраться в различиях между приведенными кодами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru