Passage de méthodes en paramètre

cs_Adel85 Messages postés 25 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 14 avril 2011 - 7 mai 2010 à 15:43
cs_Adel85 Messages postés 25 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 14 avril 2011 - 8 mai 2010 à 00:16
Bonjour,

J'ai récupéré un code écrit en c++ (http://cubature-research-group.cs.latrobe.edu.au/code.htm) pour le calcul des intégrale double. Si j'utilise le code dans ma fonction main, y a pas de problème. Mais j'ai voulu l'utilisé dans une méthode de classe ca pas marché.

//code pour integrer à l'extérieur de ma classe ça marche
double a30 = -INFINITY;
double b30 = 0.0;
double g30(double x) {return 0.0;}
double h30(double x) {return INFINITY;}
double f30(double x, double y)
{
double z1 = y - x + 1.0;
z1 = z1*z1;
if (z1 == 0.0) return 0.0;
double z2 = -x*y;
return z2 <= 0.0 ? 0.0 : 1.0/(z1 * sqrt(z2));
}


double integrate()
{
DoubleIntegral II(a30,b30,g30,h30,f30);
return II.evaluate();
}


Si je mais le code à l'intérieur d'une classe ça marche plus


class maClasse
{
const double a30 = -INFINITY;
const double b30 = 0.0;
double g30(double x) {return 0.0;}
double h30(double x) {return INFINITY;}
double f30(double x, double y)
{
double z1 = y - x + 1.0;
z1 = z1*z1;
if (z1 == 0.0) return 0.0;
double z2 = -x*y;
return z2 <= 0.0 ? 0.0 : 1.0/(z1 * sqrt(z2));
}


double integrate()
{
DoubleIntegral II(a30,b30,g30,h30,f30);
return II.evaluate();
}

};

Merci de votre aide.

3 réponses

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
7 mai 2010 à 16:19
Tu ne nous montres pas tout !

Où est II ?

Et "ca ne marche pas", ce ne nous aide pas !!! Tu as une erreur de compil, une erreur d'exécution (calcul foireux) ....
0
cs_Adel85 Messages postés 25 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 14 avril 2011
7 mai 2010 à 18:12
Le II est une instance locale à la fonction de prototype :
double integrate();

double integrate()
{
DoubleIntegral II(a30,b30,g30,h30,f30);
return II.evaluate();
}

c'est une erreur de compilation il arrive pas à reconnaitre les fonctions g30, h30 et f30
0
cs_Adel85 Messages postés 25 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 14 avril 2011
8 mai 2010 à 00:16
Il m'affiche exactement :
error: no matching function for call to `DoubleIntegral::DoubleIntegral(double&, double&, , , )'|
0
Rejoignez-nous