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 macro #define


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut problème macro #define
    Bonjour à tous,

    Je suis face à un problème que je ne comprends pas. Voici le code :

    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
    #ifndef GRAPHIC_RENDERING_HPP_INCLUDED
    #define GRAPHIC_RENDERING_HPP_INCLUDED
     
    #define GAME_GRAPHIC_LAYER_COUNT = 5
     
    #include "singleton.hpp"
     
    // -- Predeclarations --
     
    class Game;
     
    namespace Graphic
    {
        class Layer;
    }
     
    namespace sf
    {
        class RenderWindow;
    }
     
    /////////////////////////
     
    namespace Graphic
    {
        class RenderingList : public StaticSingleton
        {
            friend class Game;
     
        public :
     
            static Layer& layer( std::size_t index );
     
        private :
     
            static sf::RenderWindow * the_renderer;
            static Layer the_layers[GAME_GRAPHIC_LAYER_COUNT]; // error C2143
            static void set_renderer( sf::RenderWindow &renderer );
            static void render( void );
        };
    }
     
    /////////////////////////
     
    #endif // GRAPHIC_RENDERING_HPP_INCLUDED
    La ligne posant problème, est indiquée dans le code.
    J'ai modifié le code, en enlevant les pré-déclarations, et en incluant directement les fichiers mais, l'erreur est toujours là.
    Le compilateur (MVC++ 2008), indique ces messages :
    1>rendering.hpp(37) : error C2143: syntax error : missing ']' before '='
    1>rendering.hpp(37) : error C2864: 'Graphic::RenderingList::the_layers' : only static const integral data members can be initialized within a class
    1>rendering.hpp(37) : error C2143: syntax error : missing ';' before ']'
    1>rendering.hpp(37) : error C2238: unexpected token(s) preceding ';'
    Le design de la classe est discutable, mais là n'est pas le problème. J'aimerai juste comprendre l'erreur.

    Si, vous avez besoin de plus d'informations, faites-moi signe.

    Merci d'avance !

    Au revoir,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Plutot qu'un #define utilise une constante globale, c'est plus propre...
    D'ailleurs ton erreur vient de là, les macros s'utilisent ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #define MON_MACRO valeur de mon macro
     
    MON_MACRO;
    // qui est remplacé par :
    // valeur de mon macro;
    Dans ton cas la ligne qui pose problème va être transformée en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    static Layer the_layers[ = 5 ];
    Ce qui est une erreur syntaxique en C++

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 11
    Points : 9
    Points
    9
    Par défaut initialisation d'un tableau statique
    Merci Jun ! Génial

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Une petite piqûre de rappel : Etes-vous atteint de Singletonite ?

    Intéressante cette classe RenderingList avec que des fonctions statiques

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

Discussions similaires

  1. problème macro vba collage
    Par olodin dans le forum Macros et VBA Excel
    Réponses: 22
    Dernier message: 20/06/2007, 11h02
  2. problème macro vba collage
    Par olodin dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2007, 10h08
  3. Problème macro modèle à document
    Par perophron dans le forum VBA Word
    Réponses: 9
    Dernier message: 16/05/2007, 10h38
  4. [VBA-E] Problème macro excel
    Par pontus21 dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 19/05/2006, 18h38
  5. D6: Problème de $DEFINE $IFDEF
    Par david_chardonnet dans le forum Langage
    Réponses: 6
    Dernier message: 22/02/2006, 16h27

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