Erreur en c++

Résolu
javast Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   -  
javast Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une erreur que j'arrive pas à comprendre voilà mon code


main.cpp: In function `int main()':
main.cpp:11: error: no matching function for call to `B::inclut(A*)'
B.hpp:11: note: candidates are: bool B::inclut(A&) const

B.hpp


class B
{
public:

bool inclut(A&) const ;

private:
int x;
A y;

};


B.cpp
bool B::inclut(A& p) const
{
float a=abs(p.getX()-y.getX());
float b=abs(p.getY()-y.getY());
return (sqrt(x*x+y*y)<=x);
}

le compilateur fait comme si je fais appel à une fonction B::inclut(A*) alors que ma fonction reçoit une réference B::inclut(A&)

2 réponses

arthurik Messages postés 166 Date d'inscription   Statut Membre Dernière intervention   14
 
Salut j'ai pas bcp regardé mais essaie de mettre const devant le type entre les parantheses.
Sinon fait nous voir main.cpp le parametre que tu passe en réference!
0
javast Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   1
 
J'ai essayé ce que tu m'a dis, mais ça marche toujours pas :(

voilà le main.cpp

int main()
{
A a(4,5);
B c(5,a);
A p(2,3);
if ((&c)->inclut(&p))
{
cout << "c inclut l objet p" << endl;


}
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Tu appelles un pointeur puisque tu envoies l'adresse mémoire. Essaie plutôt : (&c)->inclut(p) ou plus simple : c.inclut(p).
0
javast Messages postés 75 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci fiddy, ça marche :)
0