Я относительно новичок в программировании на C ++ и создании небольшой программы на Dev C ++, которая производит следующий вывод компилятора:
Compiler: Default compiler
Building Makefile: "C:\Documents and Settings\s0237326\My Documents\Postgrad_Research_Sync_Folder\C_Projects\mfemm2\Makefile.win"
Executing make...
make.exe -f "C:\Documents and Settings\s0237326\My Documents\Postgrad_Research_Sync_Folder\C_Projects\mfemm2\Makefile.win" all
g++.exe -c NOSEBL.CPP -o NOSEBL.o -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"C:/Dev-Cpp/include/c++/3.4.2/backward" -I"C:/Dev-Cpp/include/c++/3.4.2/mingw32" -I"C:/Dev-Cpp/include/c++/3.4.2" -I"C:/Dev-Cpp/include"
NOSEBL.CPP: In member function `double femmedata::CNode::GetDistance(double, double)':
NOSEBL.CPP:24: error: cannot convert `CComplex' to `double' in return
NOSEBL.CPP: In member function `double femmedata::CBlockLabel::GetDistance(double, double)':
NOSEBL.CPP:108: error: cannot convert `CComplex' to `double' in return
make.exe: *** [NOSEBL.o] Error 1
Execution terminated
Проблема связана с реализацией моего класса CNode с функцией 'femmedata :: CNode :: GetDistance (double, double)', показанной ниже, с номером строки, показывающим местоположение ошибки.
22 double CNode::GetDistance(double xo, double yo)
23 {
24 return sqrt((x-xo)*(x-xo) + (y-yo)*(y-yo));
25 }
Определение класса CNode показано ниже:
class CNode
{
public:
CNode();
double x,y;
int xs,ys;
bool IsSelected;
CStdString BoundaryMarker;
int InGroup;
double GetDistance(double xo, double yo);
CComplex CC();
void ToggleSelect();
private:
};
Класс CNode объявлен в NOSEBL.h, а реализация содержится в NOSEBL.cpp. Эти файлы также содержат другие определения и реализации классов. Тем не менее, тип CComplex определен в других местах в complex.h и complex.cpp, и представлен здесь посредством включения файла заголовка.
Ранее я создавал программу в VC ++ 2010 Express Edition без проблем, поэтому не знаю, в чем здесь проблема. В случае, если это уместно, следующие несколько строк текста после функции GetDistance показаны ниже, которые ссылаются на тип CComplex.
CComplex CNode::CC()
{
return CComplex(x,y);
}
Спасибо
РЕДАКТИРОВАТЬ 1
NOSEBL.CPP: In member function `double femmedata::CNode::GetDistance(double, double)':
NOSEBL.CPP:24: error: `class CComplex' used where a floating point value was expected
NOSEBL.CPP:24: error: aggregate value used where a float was expected
NOSEBL.CPP: In member function `double femmedata::CBlockLabel::GetDistance(double, double)':
NOSEBL.CPP:108: error: cannot convert `CComplex' to `double' in return
make.exe: *** [NOSEBL.o] Error 1