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 :

des objets dans des structures


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut des objets dans des structures
    Bonjour tous le monde, je besoin d'aide je suis débutant en c++ et j'ai trouvé un problème dans la déclaration d'une structure en fait voici mon code dans le fichier Etat.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <string>
    #include <vector>
    #include "Transition.h"
    class Etat
    {   public :
    typedef struct connection
    	{
    		Etat etat;
    		Transition transition;
    	} Connection;
    	std::vector<Connection> TabCoupleConnection;
    void relier(Etat, Transition);
    et dans Etat.cpp
    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
    #include "Etat.h"
     
     Etat::Etat()
     
    {
     
    }
     void Etat::relier(Etat e,Transition t)
     
     {
        Connection c;
        c.etat = e;
        c.transition = t;
     
        TabCoupleConnection.push_back(c);
     
     }
    Je comprends pas ou le problème est ce qu'il ne comprend pas le type Etat voici l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Etat.cpp: In member function ‘void Etat::relier(Etat, Transition)’:
    Etat.cpp:19: error: ‘struct Etat::connection’ has no member named ‘etat’
    merci d'avance

  2. #2
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 041
    Points
    33 041
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    essaye de déclarer ta structure comme ceci plutôt, ta syntaxe étant celle du C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct Connection {...};
    Par contre, ça en fait de la copie d'objets.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    oui j'ai essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     struct Connection
    	{
    		Etat etat;
    		Transition transition;
    	}
    mais rien à changé toujours le même erreur

  4. #4
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 041
    Points
    33 041
    Billets dans le blog
    4
    Par défaut
    Le problème est peut-être que lors de la déclaration de Connection, il ne connait pas encore complètement Etat.
    Hors etat n'est pas un pointeur, donc il doit le connaître entièrement.
    Essaye de sortir la struct de la class, et de jouer avec les forward declaration.

    Est-ce vraiment le seul message d'erreur ?!
    Etat a bien un constructeur sans paramètres ?
    Pourquoi autant d'objets et de copies ?

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    Oui c'est le seul message d'erreur ,Oui il y a un constructeur par défaut dans le classe Etat et . J'ai pas compris comment je peux sortir la structure de classe !!!?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 578
    Points
    41 578
    Par défaut
    Le problème est que ta structure connexion doit référencer un état, pas le contenir.
    Et vu qu'elle doit être mutable, elle doit contenir un pointeur et non une référence.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Etat
    {   public :
    	struct Connexion //Pas besoin de typedef sur les structures en C++
    	{
    		Etat *pEtat; //Mettre le pointeur const si la connexion ne doit pas permettre de modifier l'état lui-même.
    		Transition transition; //Pointeur aussi?
    	};
    	std::vector<Connexion> TabCoupleConnexion;
     
    	void relier(Etat *, Transition);
    };

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    merci c'est résolu le problème il faut pointer sur les objets et non pas les copier

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    il me reste le probème des include je tombe sur ces cas mais je sais pas comment je peux les gérer?
    1-un classe hérite d'un autre classe est ce q'on doit inclure le fichier ancetre dans le fichier .
    2-déclare un objet dans un classe est ce qu'on doit l'inclure les .h de l'objer dans le classe
    merci

  9. #9
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 041
    Points
    33 041
    Billets dans le blog
    4
    Par défaut
    Tant que tu n'utilises aucune méthode ni membre tu n'as pas besoin de la déclaration complète fournie en incluant le .h.
    Forward declaration

  10. #10
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    merci beaucoup

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/01/2014, 11h12
  2. Répartition des objets dans des catégories
    Par samirtig dans le forum Méthodes prédictives
    Réponses: 0
    Dernier message: 06/11/2013, 11h19
  3. Comment ajouter des séries dans des graphes sur des feuilles variables
    Par Molomarcopolo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2012, 16h26
  4. [XL-2003] [Tableau d'Objet] Stocker des Objets dans un Tableau
    Par Master55 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/05/2009, 15h58
  5. Réponses: 7
    Dernier message: 13/03/2008, 14h59

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