//developpement de la classe Point #include #include using namespace std; class Point { //membres publiques public: //constructeurs Point(); Point(double x, double y , double z); Point(const Point &p); //constructeur de copie //destructeur ~Point() {}; //methode pour afficher le point void Print() const; //methode pour calculer la norme du vecteur (P-O) double Norm() const; //methode pour appliquer une symmetrie d'origine void Negate1(); //methode qui renvoye -q sans modifier le point Point Negate2() const; //surcharge de l'operateur pour additionner deux points Point operator+(const Point &p) const; //membres prives private: //donnees membres double x; double y; double z; }; //constructeurs Point::Point() { x = 0.; y = 0.; z = 0.; cout << "Un point a ete cree sans initialisation." << endl; } Point::Point(double x, double y, double z): x(x), y(y), z(z) { cout << "Un point a ete cree." << endl; } Point::Point(const Point &p) { x = p.x; y = p.y; z = p.z; cout << "Un point a ete copie." << endl; } void Point::Print() const { cout << "(" << x << " , " << y << " , " << z << ")" << endl; } double Point::Norm() const { double norme = sqrt(pow(x,2)+pow(y,2)+pow(z,2)); return norme; } void Point::Negate1() { x = -x; y = -y; z = -z; } //cette fonction renvoit une "variable" de type Point Point Point::Negate2() const { Point p(-x, -y, -z); return p; } //surcharge de l'operateur d'addition + Point Point::operator+(const Point &q) const { Point res(x+q.x, y+q.y, z+q.z); return res; } int main() { Point p(2,2,3); cout << "p = "; p.Print(); cout << "norme de p = " << p.Norm() << endl; Point q(3,3,0); cout << "q = "; q.Print(); cout << "norme de q = " << q.Norm() << endl; p.Negate1(); cout << "Apres Negate1(p), p = "; p.Print(); Point r = p; //copie de p cout << "r = "; r.Print(); Point s; s = q.Negate2(); cout << "Apres Negate2(q), q = "; q.Print(); cout << "s = "; s.Print(); Point t = q + s; cout << "Somme des vecteurs definis par q et s depuis l'origine : \n"; cout << "t = "; t.Print(); cout << "norme de t = " << t.Norm() << endl; Point u = p + s; cout << "Somme des vecteurs definis par p et s depuis l'origine : \n"; cout << "u = "; u.Print(); cout << "norme de u = " << u.Norm() << endl; return 0; }