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 :

Problème de structure en paramètre


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 9
    Par défaut Problème de structure en paramètre
    Bonjour à tous, voici mon problème, pour un travail je doit faire un certain jeu de carte en se basant sur l'exemple de pile que le professeur à donner, mais dans sont code à lui il entre un int en paramètre comme ceci :

    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
    //Voici son initialisation dans son .h
    typedef struct elm
    {
    	int donne;
    	struct elm * suivant ;
    }elm;
    
    typedef struct Pile_p
    {
    	struct elm * deb;
    	unsigned int taille;
    }Pile_p;
    
    //Voici comment il empile ses éléments dans sa pile
    void empiler (Pile_p *p, int x)
    {
    	elm *nouveau_element;
    	nouveau_element = new elm;
    	nouveau_element ->donne = x;
    	nouveau_element -> suivant = p->deb;
    	p->deb = nouveau_element;
    	p->taille ++;
    }
    Mon problème à moi c'est que au lieu d'avoir un int donne dans ma structure elm, j'ai une autre structure nommée Carte, comme ceci :

    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
    typedef struct Carte
    {
    	int valeur;
    	bool couleur;
    	int bonus;
    }Carte;
    
    typedef struct elm
    {
    	struct Carte;
    	struct elm * suivant;
    }elm;
    
    typedef struct Pile
    {
    	struct elm * deb;
    	int taille;
    }Pile;
    Et dans ma fonction losque j'essaie de faire comme lui :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int empiler(Pile *p, Carte c)
    {
    	elm *nouveau_element;
    	nouveau_element = new elm;
    	nouveau_element-> Carte = c;
    	nouveau_element-> suivant = p->deb;
    	p->deb = nouveau_element;
    	p->taille++;
    }
    Le nom de type de "Carte" n'est pas autorisé

    Je ne comprend vraiment pas comment résoudre cette erreur :/ J'ai pourtant essayer plusieurs truc à ma connaissance mais vu que je commence en C++ mes connaissances sont assez limitées... Merci de m'aider

    PS: j'ai mis de la couleur pour retrouver les points important plus rapidement

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonsoir,

    Ce que tu fais ressemble plus à du C qu'à du C++ (*). Je pense que tu devrais lire (qu moins le début) d'un cours du C++, ou faire ton projet en C.

    Pour ton problème, dans le code de ton professeur donne est un sous-objet de type int, dans ton cas Carte est une classe, il n'ont pas le même rôle.

    Tu n'as pas de sous-objet de type Carte dans ta classe elm, il t'en faut un, auquel tu pourras affecter la carte que tu as en paramètre.

    NB: En C++ on aurait surment quelque constructeurs à certains endroit, et si le but n'est pas juste de coder une liste chainée on utiliserait directement les conteneurs de la STL (std::vector, ou std::list si l'aspect liste chainée importe vraiment).

    (*) Veux-tu déplacer dans le forum C ?

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 9
    Par défaut
    Eh bien en fait ce que j'essaie de faire c'est du C++ donc idéalement je préfèrerais qu'il reste dans cette section, mais j'aimerais aussi que quelqu'un m'explique pourquoi mon code ressemble plus à du C que à du C++.

    Sinon merci pour l'aide je crois que j'ai compris ce qui ne marchait pas, je devait créé une structure Carte dans mon elm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct elm
    {
    	struct Carte carte;
    	struct elm * suivant;
    }elm;

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Ben en C++, ça serait plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct Elm
    {
    	Carte carte;
    	Elm* suivant;
    };
     
    Elm nouveau_element;

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 9
    Par défaut
    Je n'ai pas besoin du typedef et de réécrire struct dans ma structure?? Ah bon, merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/04/2012, 10h09
  2. Réponses: 0
    Dernier message: 15/06/2010, 10h58
  3. Gtk: problème pour passer une structure en paramètres
    Par C_Chaou dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 19/04/2007, 19h29
  4. [OCaml] Problème de structure/parser
    Par marv1 dans le forum Caml
    Réponses: 4
    Dernier message: 09/05/2005, 12h16
  5. problème de passage de paramêtre sous mozilla
    Par mat10000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/09/2004, 10h48

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