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 :

Triangle appelant point.h


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Par défaut Triangle appelant point.h
    Bonjour

    Je suis nouveau en C++ et j'ai un souci. J'ai du dans un premier temps creer un header file nommé point.h et un fichier point.cpp pour creer un point

    Mon point.h contient cela notamment:
    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
     
    // header file for this class point
     
    #include <cstdlib>
    #include <iostream>
    #ifndef POINT_H
    #define POINT_H
    #include <cmath>
     
     
    using namespace std;
     
    const double X_MAX=100.0;   //declaration of the constant X_MAX
    const double Y_MAX=100.0;   //declaration of the constant Y_MAX
     
    //Class Point represents points in the Cartesian coordinate
    class point
    {
        private:
            double x_coord, y_coord;    //coordinates of the point
            double dx, dy;              //for the translation over (dx,dy)
            double x1,x2,y1,y2;         //require for translate
     
        public:
            //pre: -X_MAX < x < X_MAX and -Y_MAX < y < Y_MAX
            //post: construct a Point object with x_coord = x and y_coord=y
            point(double, double);
    --------------
    Mon fichier point.cpp contient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // definition file for this class point
     
    #include <iostream>
    #include <cstdlib>
    #include "point.h"
     
    using namespace std;
     
    point::point(double x, double y){
        x_coord=x;
        y_coord=y;
    }
    --------
    Pour appeler mon point, j'ai juste à faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #include <cstdlib>
    #include <iostream>
    #include "triangle.h"
     
    int main()
    {
        //we start with a point equal with x_coord = 20 and y_coord = 20
      //  point p=point(20,20);
       // cout << "The contents of the object are: " ;
      //  p.write();
    Mais maintenant je dois creer un triangle utilisant ce fichier point.h et là je suis perdu ..

    J'ai créer un fichier triangle.h où j'ai écrit:

    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
    29
     
    // header file for this class point
     
    #include <cstdlib>
    #include <iostream>
    #include "point.h"
    #ifndef TRIANGLE_H
    #define TRIANGLE_H
    #include <cmath>
     
     
    using namespace std;
     
     
    //Class Triangle represents a triangle
    class triangle
    {
    private:
    const point p1_coord;
    const point p2_coord;
    const point p3_coord;
     
     
    public:
     
    //post:constructs a triangle object containing p1, p2 and p3
    triangle(const point, const point, const point);
    }:
    #endif
    --------------------
    Pour le fichier triangle.cpp j'ai écrit

    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
     
     
    // definition file for this class point
     
    #include <iostream>
    #include <cstdlib>
    #include "triangle.h"
     
    using namespace std;
     
    triangle::triangle(const point p1, const point p2,const point p3){
    p1_coord=p1;
    p2_coord=p2;
    p3_coord=p3;
    }
    -------------
    et pour appeler, j'ai créer main2.cpp où j'ai écrit

    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
     
     
    #include <cstdlib>
    #include <iostream>
    #include "triangle.h"
     
    int main()
    { cout << "The contents of the triangle is: ";
    point p1=point(20,20);
    point p2=point(-10,-10);
    point p3=point(-10,30);
    triangle T=triangle(p1,p2,p3);
     
    system("PAUSE");
     
    }
    Naturellement, ça ne marche pas. Pourriez vous svp m'aider à créer ce triangle en utilsant point.h?

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Utilise les balises [codeX] ton code [/code] (en enlevant le 'X') pour rendre ton code plus lisible.

    Tu as oublié la fin de de certains fichier^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    point::point(double x, double y) : x_coord(x), y_coord(y)
    }
    cela initialisera directement les variables avec les valeurs que tu souhaites plutôt que d'initialiser les variables puis de leur affecter une valeur.

    Edit :

    Et bien tu problème vient de ce que j'ai dit plus haut^^

    Tu ne peux affecter une valeur à des variables constante que lors de leur initialisation mais pas après.
    Donc évidemment ça plante^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    triangle::triangle(const point p1, const point p2,const point p3)
          : p1_coord(p1), p2_coord(p2), p3_coord(p3)
    {}

  3. #3
    Membre régulier
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Par défaut
    Ok, merci pour ce point. Mais maintenant comment je fais pour appeler cette fonction triangle dans main.cpp?

    Je voudrais également que
    P1 soit 20 et 20
    p2 soit -10 et -10
    p3 soit -10 et 30

    JE définis ça où ? Dans triangle.h ou main.cpp?

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Généralement, les noms de classes commencent par une majuscule.


    dans le main :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    triangle  monTriangle(point(20, -20), point(10, -10), point (5, -5) );

  5. #5
    Membre régulier
    Inscrit en
    Juin 2012
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 9
    Par défaut
    Merci

    Je voudrais imprimer le résultat sous la forme <Triangle<Point(20,20)>,<Point(-10,-10)>,<Point(-10,-30)>>

    J'ai écrit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void triangle::write(){
        cout << "<Triangle";
        p1_coord;
        cout << ",";
        p2_coord;
        cout << ",";
        p3_coord ;
        cout << ">" << endl;}
    mais ça me retourne seulement <Triangle,,>

    Je fais comment pour faire apparaître les valeurs des 3 points?

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Il faut que tu surcharge l'opérateur <<
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ostream & operator<<(ostream & flux, const point & p)
    {
           flux << p.attribut1 << "-"  << "Hello Word!";
           return flux;
    }
    N'oublie pas de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class point
    {
        public :
         .....
         private :
        friend ostream & operator<<(ostream & flux, const point & p);
    };

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par commodoreevic Voir le message
    Je voudrais imprimer le résultat sous la forme <Triangle<Point(20,20)>,<Point(-10,-10)>,<Point(-10,-30)>>

    J'ai écrit

    void triangle::write(){
    cout << "<Triangle";
    p1_coord;
    cout << ",";
    p2_coord;
    cout << ",";
    p3_coord ;
    cout << ">" << endl;}

    mais ça me retourne seulement <Triangle,,>

    Je fais comment pour faire apparaître les valeurs des 3 points?
    Les lignes p1_coord; p2_coord; p3_coord; ne servent à rien.
    Puisque tu as triangle::write(), as-tu aussi point::write() ? Si non, il semblerait logique de la posséder pour, justement, écrire les coordonnées d'un point.

    Et tu aurais alors juste à faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void triangle::write(){
        cout << "<Triangle";
        p1_coord.write();
        cout << ",";
        p2_coord.write();
        cout << ",";
        p3_coord.write();
        cout << ">" << endl;}
    Tu peux aussi passer par la surcharge de l'opérateur << pour parvenir à une écriture ressemblant à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void triangle::write(){
        cout << "<Triangle"<<p1_coord<< ","<<p2_coord<< ","<<p3_coord<< ">"<< endl;}
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. Point à l'intérieur d'un triangle ?
    Par remi77 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 15/05/2017, 14h49
  2. Interpolation "linéaire" sur un point dans triangle (3D)
    Par Vol dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 09/07/2006, 22h34
  3. Test: point au dessus d'un triangle
    Par NailMaker dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 12/06/2006, 19h55
  4. Bordures triangles et point de vue
    Par vdumont dans le forum OpenGL
    Réponses: 9
    Dernier message: 13/04/2006, 20h29
  5. [Algo] Point appartenant au triangle
    Par alexthomas dans le forum OpenGL
    Réponses: 12
    Dernier message: 05/03/2004, 16h31

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