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!
    0
    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
      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).
        0
      2. Merci fiddy, ça marche :)
        0