Конвертировать PTYPE в Double [требует правки]

522
18 февраля 2017, 06:23

Написал код, однако он выводит такую ошибку:

C:\Works\contr_glsso1\mainwindow.cpp:771: ошибка: C2664: 'Line_Graph::Set_Data' : cannot convert parameter 2 from 'PTYPE *' to 'double *'
 Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast 

Не знаю, что делать. ;_;

defines.h

 typedef float PTYPE;

struct.h

 PTYPE *RE;

mainwindows.h

void Update_Line(double X);

mainwindows.cpp

void MainWindow::Update_Line(prof->RE)  // вот тут вот он выдает ошибку 

Пытался привести к типу не вышло:

    void MainWindow::Update_Line((unsigned double *)prof->RE) // выдает ошибку C2664

Вот еще один вариант:

    void MainWindow::Update_Line(*prof->RE) // выдает  C2100: illegal indirection

И еще:

    double f1 = *prof->RE;
    void MainWindow::Update_Line(f1) // ошибка: C2109: subscript requires array or pointer type

Даже так пробовал:

  double f1 = *prof->RE;
    void MainWindow::Update_Line(f1) // ошибка: C2109: subscript requires array or pointer type      

Конвертировать PTYPE в double не умею, от переменной отказаться не могу - много где используется. Код не мой, просто столкнулся с проблемой.

Answer 1

Выложите весь код:

 void MainWindow::Update_Line(prof->RE)  // вот тут вот он выдает ошибку 

Эта строчка и вызывает подозрение, там должно быть что-то типа:

 void MainWindow::Update_Line(double x);

А вот в месте, где её вызываете, может и нужны какие-то приведения типов.

Answer 2

При такой реализации

typedef float PTYPE;
PTYPE *RE;

RE - просто указатель на float, так что должно работать просто

Update_Line(*RE);

Но вы нам точно все рассказали? Зачем тогда вы пытаетесь так старательно получить prof->RE? Может, это поле в структуре? надо приводить всю информацию!

Если это поле в структуре, а prof - указатель на нее, то должно сработать

Update_Line(*prof->RE);

Раз не работает - давайте дополнительную информацию. Что такое RE, prof и так далее.
Ответ нужен вам - так почему из вас информацию по капле тянуть приходится?... :(

И еще - сообщение компилятора о функции Line_Graph::Set_Data, а вы нам старательно подсовываете Update_Line. Так все же, где ошибка?

READ ALSO
Исключения при работе с итераторами

Исключения при работе с итераторами

Решаю следующую задачу: есть некоторый файл, структура которого представляет собой набор блоковКаждый блок имеет заголовок и тело

373
VIPS library Qt

VIPS library Qt

Пытаюсь собрать проект с VIPS LibПодключил следующие

312
Обработка изображения с помощью OpenCV

Обработка изображения с помощью OpenCV

Стоит задача распознавания капчи с некоторого ресурса

388
MPI -обновление флага

MPI -обновление флага

Изучаю MPI, появился вопрос:

320