IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

explication sur les classes


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Par défaut explication sur les classes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #ifndef POINT_H
    #define POINT_H
     
    class Point
    {
      public:
        double x,y;
        double distance(const Point &P);
        Point milieu(const Point &P); 
    };
    #endif
     
     
    #include "Point.h"
    #include <cmath>
    c'est à partir d'ici que je ne comprend pas . Pourquoi (x - P.x) le x il fait quoi quelqu'un peut m'expliquer en detail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    double Point::distance(const Point &P)
    {
        double dx,dy;
        dx = x - P.x;
        dy = y - P.y;
        return sqrt(dx*dx + dy*dy); 
    }
     
     
    Point Point::milieu(const Point &P)
    {
        Point M;
        M.x = (P.x+x) /2;
        M.y = (P.y+y) /2;
        return M;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #include <iostream> 
    using namespace std;
    #include "Point.h"
     
     
     
    int main() 
    { 
        Point A, B, C;
        double d;
        cout << "SAISIE DU POINT A" << endl;
        cout << "Tapez l'abscisse : "; cin >> A.x;
        cout << "Tapez l'ordonnée : "; cin >> A.y;
        cout << endl;
        cout << "SAISIE DU POINT B" << endl;
        cout << "Tapez l'abscisse : "; cin >> B.x;
        cout << "Tapez l'ordonnée : "; cin >> B.y;
        C = A.milieu(B);
        d = A.distance(B);
        cout << endl;
        cout << "MILIEU DE AB" << endl;
        cout << "L'abscisse vaut : " << C.x << endl;
        cout << "L'ordonnée vaut : " << C.y << endl;
        cout << endl;
        cout << "La distance AB vaut :" << d << endl;
        return 0;
    }

  2. #2
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    bonjour

    dx est la distance entre les deux absices x.

    x- P.x veut dire: Abscisse (la notre, celle de l'objet dont on appele laméthode distance)-abscisse du point P (passé en paramètre).

    Je pense que c'est relativement simple...

    bonne chance

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    double Point::distance(const Point &P)
    {
        double dx,dy;
        dx = x - P.x;
        dy = y - P.y;
        return sqrt(dx*dx + dy*dy); 
    }
    En C++, lorsque tu rentre dans Point::distance, tu a un paramètre implicite qui est l'objet sur lequel la méthode s'applique. Donc 'x' tout seul lit la valeur associée à cet objet et P.x lit la valeur associée au paramètre P.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Point P0;
    Point P1;
    P0.x = 12;
    P0.y = 1;
     
    P1.x = 43;
    P1.y = -23;
    // cas 1
    P0.distance(P1);
    // cas 2
    P1.distance(P0);
    Dans le premier cas, l'objet sur lequel s'applique la méthode est P0 et le paramètre est P1. On aura donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    double Point::distance(const Point &P) // this==P0 et P == P1
    {
        double dx,dy;
        dx = x - P.x;// x ==12 et P.x == 43
        dy = y - P.y;// y==1 et P.y ==-23
        return sqrt(dx*dx + dy*dy); 
    }
    Dans le second cas, on inverse: l'objet sur lequel s'applique la méthode est P1 et le paramètre est P0:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    double Point::distance(const Point &P) // this==P1 et P == P0
    {
        double dx,dy;
        dx = x - P.x;// x ==43 et P.x == 12
        dy = y - P.y;// y==-23 et P.y ==1
        return sqrt(dx*dx + dy*dy); 
    }

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ça correspond à dx = this->x - P.x. En clair, un bète calcul de différence membre à membre entre deux structures.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 11
    Par défaut
    Merci c'est compris l'explication

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoins d'explications sur les classes de base et de son utilisation
    Par vandeyy dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 07/03/2014, 14h49
  2. petite explication sur les classes
    Par elmcherqui dans le forum Qt
    Réponses: 2
    Dernier message: 15/05/2008, 11h05
  3. Question de base sur les classes
    Par deaven dans le forum C++
    Réponses: 3
    Dernier message: 27/11/2005, 16h20
  4. [RegEx] preg_replace : explications sur les caractères spéciaux
    Par Anduriel dans le forum Langage
    Réponses: 6
    Dernier message: 05/10/2005, 21h35
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo