В моем файле CPP у меня есть вызов:
pt.x = mDownPoint.x + FSign(pt.x-mDownPoint.x) *
FMax( FAbs(pt.x-mDownPoint.x), FAbs(pt.y-mDownPoint.y) );
Я получаю ошибки компилятора для FSign
, FMax
, FAbs
, но я включаю файл заголовка, где они находятся в.
Так что я не понимаю, почему он не может его найти, если я не сделал что-то не так при создании этого файла заголовка.
Могу ли я получить некоторые указания на то, что я делаюне так?
Заголовок:
class FxMathFunctions
{
struct FxPoint2d;
public:
FxMathFunctions();
~FxMathFunctions();
static FxInt32 IMin(FxInt32 i1,FxInt32 i2);
static FxInt32 IMax(FxInt32 i1,FxInt32 i2);
static FxInt32 ILimit(FxInt32 val, FxInt32 i1, FxInt32 i2);
static FxDouble FMin(FxDouble i1,FxDouble i2);
static FxDouble FMax(FxDouble i1,FxDouble i2);
static FxFloat FMax(FxFloat i1,FxFloat i2);
static FxFloat FLimit(FxFloat val, FxFloat i1, FxFloat i2);
static FxDouble FrInverseContrast(FxDouble opacity,FxDouble antialias);
static FxInt32 ISign(FxInt32 l);
static FxFloat FSign(FxFloat v);
static FxInt32 IAbs(FxInt32 l);
static FxFloat FAbs(FxFloat v);
static FxInt32 INonzero(FxInt32 l);
static double DAbs(double v);
static FxInt32 Sqr(FxByte v);
static FxInt32 Sqr(FxInt32 v);
static FxFloat Sqr(FxFloat v);
static FxDouble Sqr(FxDouble v);
static FxInt32 FrCubed(FxByte v);
static FxInt32 FrCubed(FxInt32 v);
static FxFloat FrCubed(FxFloat v);
static FxDouble FrCubed(FxDouble v);
static FxDouble FrFourthPower(FxDouble v);
static FxFloat FrFourthPower(FxFloat v);
static FxBool FNearEqual(FxFloat val, FxFloat nearTo, FxFloat closeness = 0.00001f);
static FxBool FNearGreaterEqual(FxFloat val, FxFloat nearTo, FxFloat closeness = 0.00001f);
static FxBool FNearLessEqual(FxFloat val, FxFloat nearTo, FxFloat closeness = 0.00001f);
};
.CPP к Заголовку, где это применимо, для одной неисправной функции:
FxFloat FAbs(FxFloat v)
{
if (v < 0.0f) v = -v;
return v;
}
РЕДАКТИРОВАНИЕ:
Исправленовызов:
pt.x = mDownPoint.x + FxMathFunctions::FSign(pt.x-mDownPoint.x) *
FxMathFunctions::FMax( FxMathFunctions::FAbs(pt.x-mDownPoint.x),
FxMathFunctions::FAbs(pt.y-mDownPoint.y) );
Сбой:
ошибка: невозможно вызвать функцию-член 'FxFloat FxMathFunctions :: FAbs (FxFloat)'