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 :

[Debutant]Problème Insertion dans une Struct


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Par défaut [Debutant]Problème Insertion dans une Struct
    Bonjour, voici un petit problème d'insertion de struct :

    Je déclare dans une class.h ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    POINT3D A,B,C,D,E,F,G,H;
    Jé déclare ma structure dans un autre fichier qui est include dans ma classe/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    struct POINT3D
    { 
    	 double X;
    	 double Y;
    	 double Z;
    };
    Le problème est pour initialiser mes valeurs, pour le moment je suis obliger de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void Cube::SetPOINT3D(POINT3D ptA,double distance)
     
    A = ptA;
    B.X = ptA.X+distance;
    B.Y = ptA.Y;
    B.Z = ptA.Z;
    C.X = ptA.X;
    C.Y = ptA.Y +distance;
    C.Z = ptA.Z;
    Je voudrais faire du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    A= ptA;
    B = new POINT3D (ptA.X+distance,ptA.Y,ptA.Z);
    C= new POINT3D(ptA.X,ptA.Y+distance,ptA.Z);
    Mais ceci ne marche pas, donc si quelqu'un pourrait m'aider.

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    Tu t'es trompé de forum ,)

  3. #3
    Membre Expert Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Par défaut
    Salut,
    Comme l'a dit Gruik, ici, c'est le forum C. Utilises plutôt le forum C++.
    Celà dit, j'ai du mal à saisir l'intérêt du mélange des structures et classes... Pour résoudre ton problème, il suffirait d'utiliser une classe POINT3D au lieu d'une structure.

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2003
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 69
    Par défaut
    ben je voudrais utiliser une structure car sinon jaurai trop de classes :s .

    Ben c'est un probleme de struct et non un problème de classe. Mais j'ai juste dit que la déclaration des structures sont fait sur une classe. Mais le problème est pur C .

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Cube::SetPOINT3D(POINT3D ptA,double distance)
    Tu appelles ça du pur C? Je ne comprends pas bien ta remarque "je voudrais utiliser une structure car sinon jaurai trop de classes"... Si tu programmes en C++, utilise plutôt des classes. Pourrais-tu préciser ton problème? Si tu désires programmer en C, il faudra reprendre tout ça depuis le début.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Bon, bien que tu te sois trompé de forum...

    Citation Envoyé par sniperseb
    ben je voudrais utiliser une structure car sinon jaurai trop de classes :s .
    Ca, c'est typiquement le genre d'argument qui ne tient pas la route...

    Il n'y a qu'une différence de visibilité entre une classe et une structure en C++...

    Par défaut, la visibilité des membres et des fonctions est privée dans une classe et publique dans une structure... mais sinon, tu peux très bien envisager une classe dans le genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    //exemple d'une classe n'ayant que des membres publiques 
    class Maclass
    {
         public:
              double x;
              double y;
              double z;
              maclass(double, double, double);
              ~maclass();
    };
    ou une structure héritant d'une classe de manière privée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // une structure qui hérite de Maclass de manière privée
    struct Mastruct: private Maclass
    {
        // il faudra un constructeur, vu que x, y et z sont prives
        Mastruct(double x, double y, double z):Maclass(x, y, z){}
        // et un destructeur, meme s'il ne fait rien dans l'exemple 
        ~Mastruct(){}
        //il faut peut etre des assesseurs
        double GetX(){return x;}
        double GetY(){return y;}
        double GetZ(){return z;}
    };
    qui, comme tu le remarque, peut également contenir des méthodes

    Enfin, une struct peut très bien hériter d'une classe et inversément...

    Ceci dit, je ne vois que très peu l'utilité de déclarer six points "hors de tout"...

    tu aurais largement intéret à déclarer correctement ton cube, dans le genre de
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    class CUBE
    {
        public: 
        // prévoyons plusieurs moyens de le créer:
            CUBE(const point& p1, const point& p2, 
                 const point& p3, const point& p4, 
                 const point& p5, const point& p6
                 const point& p7, const point& p8)
            {
                //on le cache à l'utilisateur de la classe, mais c'est simplement
               // un vecteur de points
               Points.push_back(p1);
               Points.push_back(p2);
               Points.push_back(p3);
               Points.push_back(p4);
               Points.push_back(p5);
               Points.push_back(p6);
               Points.push_back(p7);
               Points.push_back(p8);
            }
        // l'utilisateur peut donner un vecteur de points
            CUBE(const std::vector<point>& points):Point(points)
            { assert(Point.size()==8);}
        // ou peut etre prévois tu que l'utilisateur de la classe veuille
        // passer une std::list de points ?
            CUBE(const std::list<point>& points)
            {
                 for(std::list<point>iterator it= point.begin(); 
                       it!=point.end();it++)
                     Points.push_back((*it));
                 assert(Points.size()==8);
                 //je crois, mais je suis pris d'un doute, qu'il y aurait moyen
                 // de faire Points=points;
            }
        // voire meme un tableau "à la C"
            CUBE(point* points)
            {
                 for(unsigned int i=0;i<8;i++)
                     Points.push_back(points[i]);
            }
        // ou, enfin, un cube existant
            CUBE(const CUBE& ref)
            {
                  Points.clear();
                  Points=ref.Points;
            }
        // on n'oublie pas le destructeur
            ~CUBE()
            {Points.clear();}
        // et sans doutes les assesseurs
        const Point& GetFrontUpLeft() const {return Points[0];}
        const Point& GetFrontUpRight() const {return Points[1];}
        const Point& GetFrontDownLeft() const {return Points[2];}
        const Point& GetFrontDownRight() const {return Points[3];}
        const Point& GetRearUpLeft() const {return Points[4];}
        const Point& GetReartUpRight() const {return Points[5];}
        const Point& GetRearDownLeft() const {return Points[6];}
        const Point& GetRearDownRight() const {return Points[7];}
        private:
            std::vector<point> Points;
    }
    désolé, mais j'avais la flegme de séparer l'implémentation et de la déclaration
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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

Discussions similaires

  1. Problème : insertion dans une BDD ACCESS avec VB
    Par Dorni dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/05/2009, 14h35
  2. Réponses: 5
    Dernier message: 18/02/2008, 13h48
  3. [Debutant]Problème Insertion dans une Struct
    Par sniperseb dans le forum C
    Réponses: 5
    Dernier message: 14/12/2006, 17h24
  4. [debutant] requete "insert" dans une page jsp
    Par el_bassir dans le forum JDBC
    Réponses: 2
    Dernier message: 31/08/2006, 18h13
  5. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05

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