no matching function for call to 'Point::affiche(Point&)'
je suis nouveau sur c++, je travaille sur une class Point avec des setters et des getters et des méthodes mais je reçois l'erreur suivante :
no matching function for call to 'Point::affiche(Point&)'
le fichier Point.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#ifndef POINT_H
#define POINT_H
class Point
{
public:
Point();
virtual ~Point();
Point(const Point& other);
void affiche();
float deplace(float x, float y);
float getAbscisse() const;
float getOrdonnee() const;
void setAbscisse(float abs);
void setOrdonnee(float ord);
private:
float abscisse;
float ordonnee;
};
#endif // POINT_H |
le fichier Point.cpp est comme suite:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| #include "Point.h"
#include <iostream>
Point::Point()
{
//ctor
}
Point::~Point()
{
//dtor
}
Point::Point(const Point& other)
{
//copy ctor
}
Point::affiche(Point p)
{
cout<<"les cordonnées du point sont:"<<p.getAbscisse()<<p.getOrdonnee();
}
Point::deplace(Point p)
{
float d;
cout<<"pour déplacer le point entrer un taux de déplacement"<<endl;
cin>>d;
cout<<" "<<endl;
p.setAbscisse(abscisse)=p.setAbscisse(abscisse)+d;
p.setOrdonnee(ordonnee)=p.setOrdonnee(ordonnee)+d;
}
Point::setAbscisse(float abs)
{
abs=abscisse;
}
Point::setOrdonnee(float ord)
{
ord=ordonnee;
}
Point::getAbscisse() const
{
return abscisse;
}
Point::getOrdonnee() const
{
return ordonnee;
} |
le fichier main.cpp est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #include <iostream>
#include "Point.h"
#include <cstdlib>
using namespace std;
int main()
{
Point p;
float abs, ord;
cout<<"entrer les cordonnées du point"<<endl;
cin>>abs>>ord;
cout<<" "<<endl;
p.setAbscisse(abs);
p.setOrdonnee(ord);
p.affiche(p);
p.deplace(abs,ord);
p.affiche(p);
return 0;
} |
j'ai apporté les modifications que tu m'as dit mais le problème persiste toujours malheureusement!
j'ai apporté les modifications que tu m'as dit mais le problème persiste toujours malheureusement!
j'ai essayé de modifier mon code et de corriger les erreurs
effectivement il y avait des erreurs sur mon code j'ai essayé de corriger les erreurs, mais cette fois j'ai reçu l'erreur suivante :'cout' was not declared in this scope. et le voici mon code:
le fichier Point.h
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#ifndef POINT_H
#define POINT_H
class Point
{
public:
Point();
virtual ~Point();
Point(const Point& other);
void affiche(Point p) const;
void deplace(float x, float y);
float getAbscisse() const;
float getOrdonnee() const;
void setAbscisse(float abs);
void setOrdonnee(float ord);
private:
float abscisse;
float ordonnee;
};
#endif // POINT_H |
le fichier Point.cpp:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #include "Point.h"
#include <iostream>
Point::Point()
{}
Point::~Point()
{}
Point::Point(const Point& other)
{}
void Point::affiche(Point p) const
{
cout<<"les cordonnées du point sont:"<<p.getAbscisse()<<p.getOrdonnee();
}
void Point::deplace(float x, float y)
{
float d;
cout<<"pour déplacer le point entrer un taux de déplacement"<<endl;
cin>>d;
cout<<" "<<endl;
x=x+d;
y=y+d;
p.setAbscisse(x);
p.setOrdonnee(y);
}
void Point::setAbscisse(float abs)
{
abscisse=abs;
}
void Point::setOrdonnee(float ord)
{
ordonnee=ord;
}
float Point::getAbscisse() const
{
return abscisse;
}
float Point::getOrdonnee() const
{
return ordonnee;
} |
le fichier main.cpp:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#include <iostream>
#include "Point.h"
#include <cstdlib>
using namespace std;
int main()
{
Point p;
float abs, ord;
cout<<"entrer les cordonnées du point"<<endl;
cin>>abs>>ord;
cout<<" "<<endl;
p.setAbscisse(abs);
p.setOrdonnee(ord);
p.affiche(p);
p.deplace(abs,ord);
p.affiche(p);
return 0;
} |
merci beaucoup vous m'avez beaucoup aider
merci beaucoup vous m'avez beaucoup aidez à réaliser mon premier projet objet.