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 de déclaration d'attribut typé


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 22
    Points
    22
    Par défaut [Debutant] Problème de déclaration d'attribut typé
    Bonjour,

    La question est surement très bête, mais je n'arrive pas a résoudre mon problème :

    Je souhaite que ma classe tampon enregistre l'objet jeu (de la Classe Jeu) qui l'appelle.

    Voici le code de la classe jeu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Jeu::Jeu(char * nomJoueur1, char * nomJoueur2)
    {
        // Enregistrement du tampon
        Tampon tampon = Tampon(this);
    }
    Voici mon tampon.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
    16
     
    #ifndef DEF_TAMPON
    #define DEF_TAMPON
    #include "Jeu.h"
    using namespace std;
     
    class Tampon
    {
        public:
            Tampon(); // constructeur simple.
            Tampon(Jeu *j);
        private:
            std::Jeu *jeu;
    };
     
    #endif
    et le tampon.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
    #include "Tampon.h"
    using namespace std;
     
     
     
    Tampon::Tampon()
    {
        jeu= new Jeu();
    }
     
    Tampon::Tampon(Jeu *j)
    {
        jeu=j;
    }
    et voilà ce que me répond le compilo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Switching to target: default
    Compiling: Jeu.cpp
    In file included from Jeu.h:5,
                     from Jeu.cpp:1:
    Tampon.h:10: error: expected `)' before '*' token
    Tampon.h:12: error: ISO C++ forbids declaration of `Jeu' with no type
    Tampon.h:12: error: expected `;' before '*' token
    Jeu.cpp: In constructor `Jeu::Jeu(char*, char*)':
    Jeu.cpp:14: error: no matching function for call to `Tampon::Tampon(Jeu* const)'
    Tampon.h:7: note: candidates are: Tampon::Tampon(const Tampon&)
    Tampon.h:9: note:                 Tampon::Tampon()
    j'ai essayé diverse déclinaison des déclarations il me jette à chaque fois. (J'utilise codeblocks)

    Si quelqu'un vois le gouffre dans lequel je me suis fourré, je veux bien un coup de main.

    Merci

  2. #2
    Membre habitué Avatar de Ksempac
    Inscrit en
    Février 2007
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 165
    Points : 185
    Points
    185
    Par défaut
    Concernant ton erreur visiblement, il ne connait aps le type Jeu. Peux tu poster Jeu.h ?

    A part ca, soit tu n'as pas tout posté, soit ton code est...bizarre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Jeu::Jeu(char * nomJoueur1, char * nomJoueur2)
    {
        // Enregistrement du tampon
        Tampon tampon = Tampon(this);
    }
    Ici tu créees un objet temporaire Tampon, il sera donc detruit lorsque tu sors de ton constructeur...je ne suis pas sur que ce soit ce que tu recherches

    c'est pas une bonne idée de rajouter ses classes dans le namespace std. si tu veux creer un namespace propre a ton projet, choisis lui un nom qui te soit propre.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 38
    Points : 22
    Points
    22
    Par défaut
    Merci, pour l'aide. Pour le Namespace je note .

    Voilà le fichier jeu.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
    16
    17
    18
    19
    20
    21
    22
    23
    #ifndef DEF_JEU
    #define DEF_JEU
    #include "Joueur.h"
    #include "Ecran.h"
    #include "Tampon.h"
    #include <SDL/SDL.h>
    #include <SDL/SDL_image.h>
    #include <SDL/SDL_ttf.h>
    #include <iostream>
    #include <string>
     
    class Jeu
    {
        public:
            Jeu(); // constructeur simple.
            Jeu(char * nomJoueur1, char * nomJoueur2); // constructeur
        private:
            Joueur j1,j2;
            Ecran screen;
            FILE* fichier;
    };
     
    #endif
    Pour le fait de créer le tampon dans le constructeur de jeu, c'est uniquement pour que les autres objets soient initialisé après connaissent le tampon. (pour l'instant le jeu se termine dès la fin du constructeur Jeu. (oui ca c'est pas bien mais c'est juste pour tester )

Discussions similaires

  1. Problème dans la déclaration des attributs
    Par hazem2410 dans le forum C#
    Réponses: 3
    Dernier message: 02/12/2010, 08h28
  2. Problème déclaration f:attribute coté java
    Par midos_ab dans le forum JSF
    Réponses: 2
    Dernier message: 25/10/2010, 11h03
  3. debutant problème d'attribut non déclaré
    Par gikose dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 26/03/2009, 19h33
  4. [Debutant] Problème du linker [Dev-c++4]
    Par Macdir dans le forum Dev-C++
    Réponses: 3
    Dernier message: 30/05/2003, 20h50
  5. Problème de déclaration de segment avec use32
    Par le mage tophinus dans le forum Assembleur
    Réponses: 2
    Dernier message: 10/01/2003, 10h17

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