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 :

Erreur de code


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut Erreur de code
    Bonjour,

    J'ai un gros problème.Mon code ne compile pas j'ai l'erreur :
    Environnement.cpp: In constructor ‘Environnement::Environnement()’:
    Environnement.cpp:12: error: request for member ‘tabEnvironnement’ in ‘this’, which is of non-class type ‘Environnement* const’
    Environnement.cpp:12: error: expected primary-expression before ‘{’ token
    Environnement.cpp:12: error: expected `;' before ‘{’ token

    Pourquoi ? merci davance


    fichier.h:
    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
     
    struct Cases{
       int nourriture;
       int eau;
    };
    class Environnement{
     
    private:
      Cases tabEnvironnement[6][6];
     
    public:
       Environnement();
       ~Environnement(void);
       void afficher();
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Environnement::Environnement()
    {
    struct Cases CaseVide={0,0};
    struct Cases CaseN={10,0};
    struct Cases CaseE={0,10};
     
     this.tabEnvironnement[6][6] =  { {CaseVide,CaseVide,CaseVide,CaseVide,CaseVide,CaseVide},
                              {CaseVide,CaseVide,CaseVide,CaseVide,CaseVide,CaseVide},
                              {CaseVide,CaseVide,CaseVide,CaseVide,CaseVide,CaseVide},
                              {CaseVide,CaseVide,CaseVide,CaseN,CaseVide,CaseVide},
                              {CaseE,CaseVide,CaseVide,CaseVide,CaseVide,CaseVide},
                              {CaseE,CaseVide,CaseVide,CaseVide,CaseVide,CaseVide}};
     
    }

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    Le message d'erreur est pourtant assez clair this est de type ‘Environnement* const’ donc tu ne peux pas acceder à ses éléments avec "." mais tu le peux avec "->". Donc remplace par

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut
    Perdu ! J'ai l'érreur suivante si je fais cette modification :

    Environnement.cpp: In constructor ‘Environnement::Environnement()’:
    Environnement.cpp:12: error: expected primary-expression before ‘{’ token
    Environnement.cpp:12: error: expected `;' before ‘{’ token

  4. #4
    Membre éclairé
    Avatar de warubi
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 399
    Par défaut
    Ce que t'as dit capitN.flam est correct ce qui veut dire que tu as fait une autre erreur dans ton code ! a

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Ce genre d'affectation n'est pas permis.
    Définis plutôt un constructeur par défaut pour tes cases. Ainsi, l'initialisation par défaut du tableau sera exécutée et mettra toutes les cases à "vides"

    Ensuite, initialise à la main les rares cases restantes.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Par défaut
    Oki merci bien Luc Hermitte et capitN.flam.
    Mais Cases étant une structure, il y a pas de constructeur (sauf erreur de ma part). DOnc je ne peux pas initialiser.
    Je dois donc faire tout à la main, il me semble.....
    PS: J'adore le C++

  7. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Il n'y a pas de constructeur par défaut dans une structure POD ("à-la-C", pour résumer) tant que .. tu n'en rajoutes pas. A partir du moment où tu en rajoutes un, il sera utilisé.

    cf la FAQ pour la différence entre "struct" et "class" en C++.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Erreur système . Code : 1410 ?
    Par Interruption13h dans le forum C++Builder
    Réponses: 5
    Dernier message: 05/05/2006, 08h59
  2. [Debutant][XSL] Erreur de code programmation
    Par SkyDev dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 14/03/2006, 22h38
  3. Erreur : ce code n'est pas connu
    Par ruman dans le forum VBA Access
    Réponses: 17
    Dernier message: 13/02/2006, 11h37
  4. [MySQL] Erreur dans code php
    Par Badr3am dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 31/01/2006, 22h16
  5. Erreur de code
    Par petdelascar dans le forum C
    Réponses: 7
    Dernier message: 12/12/2005, 08h15

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