j'ai donc une fonction avec le prototypeparamètres de la fonction C++ compiler wont
double Solution::bisect
(
double xLeft,
double xRight,
double epsilon,
double f(double x, EquCoeffs coeffsStruct),
bool &error
);
où la fonction f
est prototypé comme celui-ci
double Solution::f(double x, EquCoeffs coeffsStruct);
L'erreur que je reçois dans Visual Studio est argument of type "double(Solution::*)(double x, Solution::EquCoeffs coeffsStruct)" is incompatible with parameter of type "double(*)(double x, Solution::EquCoeffs coeffsStruct)"
qui se produit lorsque j'essaie d'appeler bisect(xLeft, xRight, epsilon, f, error);
où xRight
xLeft
epsilon
, sont de type double
et error
est de type bool
.
Pourquoi ne pas compiler? Je ne suis pas sûr de comprendre l'erreur. Comment est un double(Solution::*)
différent de double(*)
?
S'il vous plaît montrer un [mcve]. L'erreur provient de la façon dont vous appelez la fonction. Vous essayez de l'appeler avec un pointeur vers une fonction membre alors qu'il attend un pointeur vers une fonction libre – user463035818
Comment puis-je faire en sorte qu'il attende un pointeur sur une fonction membre à la place? – Airhead
... btw l'erreur vous dit déjà tout ce que vous devez savoir;) – user463035818