Erreur en c++

Résolu
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

  1. 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!
    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;

      }
      1. Contributeur
        Tu appelles un pointeur puisque tu envoies l'adresse mémoire. Essaie plutôt : (&c)->inclut(p) ou plus simple : c.inclut(p).
      2. Merci fiddy, ça marche :)