Erreur en c++

Résolu
javast Messages postés 88 Statut Membre -  
javast Messages postés 88 Statut Membre -
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. 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
  2. javast Messages postés 88 Statut Membre 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. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      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. javast Messages postés 88 Statut Membre 1
       
      Merci fiddy, ça marche :)
      0