13 Mar2016
Classe Point avec fonctions amies
Objectif:
Créer des fonctions amies (friend)
Énoncé:
Créer une classe Point en C++ permettant de représenter des points dans un plan caractérisé par deux coordonnées x et y.
Définir les fonctions membres suivantes :
- constructeur d’initialisation et de recopie
- affiche: se contentant d'afficher les coordonnées cartésiennes du point.
Définir les fonctions amies suivantes :
- comparer: vérifie si deux points sont identiques.
- distance: calcule la distance entre deux points.
- milieu: renvoie le point milieu du segment composé de deux points.
Exemple d’exécution :
Creation des points :
A(1,1)
-----
B(2,2)
-----
C(3,3)
-----
La distance entre A et B : 1.41421
Le milieu entre A et C :
M(2,2)
-----
Comparaison:
Les deux points B et C ne se coincident pas
//Programme : Classe Point avec fonctions amies //Auteur : IDMANSOUR //Copyright : Exelib.net #include<iostream> #include<cmath> using namespace std; class point { float x, y; public: point(float a = 0, float b = 0) { x = a; y = b; } point(const point & p) { x = p.x; y = p.y; } void afficher() { cout << "(" << x << "," << y << ")" << endl; cout<<"-----"<<endl; } friend bool comparer(const point &, const point &); friend float distancep(const point &, const point &); friend point milieu(const point &, const point &); }; bool comparer(const point & p1, const point & p2) { if(p1.x == p2.x && p1.y == p2.y) return true; return false; } float distancep(const point & p1, const point & p2) { return sqrt(pow(p1.x - p2.x , 2) + pow(p1.y - p2.y , 2)); } point milieu(const point & p1, const point & p2) { point m; m.x = (p1.x + p2.x) / 2; m.y = (p1.y + p2.y) / 2; return m; } int main() { cout<<"Creation des points : "<<endl; point A(1, 1), B(2, 2), C(3, 3); cout << "A"; A.afficher(); cout << "B"; B.afficher(); cout << "C"; C.afficher(); cout << "La distance entre A et B : " << distancep(A, B) << endl; cout<<"Le milieu entre A et C : "<<endl; point m; m = milieu(A, C); cout << "M"; m.afficher(); cout<<"Comparaison:"<<endl; if(comparer(B, C)) cout << "Les deux points B et C se coincident" << endl; else cout << "Les deux points B et C ne se coincident pas" << endl; return 0; }