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 :

Soucis lors de l'edition des liens


Sujet :

C++

  1. #1
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut Soucis lors de l'edition des liens
    Bonjour,
    J'explique mon soucis.
    Dans mon programme, j'ai une classe Ecran, comprenant que des méthodes et variables statiques.

    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
    class Ecran
    {
    	public:
     
    	static void init(int w, int h, char* titre);
    	static void Ecran::affiche(SDL_Surface *surface, SDL_Rect *position, SDL_Rect *rogne);
    	static void flip() { SDL_Flip(screen); }
    	static void quit();
     
    	static SDL_Surface* getScreen() { return screen; }
        static SDL_Surface *screen;
     
        private:
     
     
    };
    Biensur, à ce header est rattaché à un cpp contenant le code des programmes, mais qui me semble inutile de vous les presenter.

    Bon, le problème, c'est que dans le programme, j'utilise un membre statique, que ce soit à l'interieur ou à l'exterieur de la classe.
    Exemple:
    A l'edition des liens, ca plante.
    [Linker error] undefined reference to `Ecran::screen'


    C'est pour ça que je demande votre aide, car je ne trouve pas la solution

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    montre le .cpp car les membres statiques doivent être bien initialisés

  3. #3
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107

  4. #4
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par hegros Voir le message
    montre le .cpp car les membres statiques doivent être bien initialisés
    Nuance: il n'est pas obligatoire qu'ils soient initialises, mais ils doivent etre defini et non uniquement declare.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    struct foo {
       static int bar;
    };
    int foo::bar;
    est conforme et foo::bar n'est pas initialise (comme tout objet a duree de vie statique, il sera initialise a 0, mais c'est une autre histoire, meme si on avait eu
    cette initialisation a 0 a conceptuellement lieu -- conceptuellement car en pratique, il n'y a que si on ecrit
    que l'initialisation a 0 est detectable quand il y a aussi une initialisation explicite).

  5. #5
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    En effet, dans le fichier cpp,
    il a bien fallu que je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_Surface Ecran::*screen;
    en dehors de toutes fonctions, et méthodes.

    Et ca tourne niquel, mais je ne comprends pas pourquoi il faut faire cela obligatoirement.

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par ZouBi Voir le message
    En effet, dans le fichier cpp,
    il a bien fallu que je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_Surface Ecran::*screen;
    en dehors de toutes fonctions, et méthodes.

    Et ca tourne niquel, mais je ne comprends pas pourquoi il faut faire cela obligatoirement.
    Parce que cela fait parti de la définition du langage. Tu ne dois pas simplement déclarer tes membres statiques mais aussi les définir. voir les exemples plus haut.

  7. #7
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    en tout cas, merci beaucoup

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

Discussions similaires

  1. "Error processing module" lors de l'edition des liens
    Par pottiez dans le forum C++Builder
    Réponses: 0
    Dernier message: 26/05/2008, 18h02
  2. Réponses: 5
    Dernier message: 03/12/2006, 16h15
  3. Réponses: 3
    Dernier message: 21/07/2006, 15h50
  4. Problème d'édition des liens
    Par keyra dans le forum C
    Réponses: 9
    Dernier message: 30/04/2006, 12h48
  5. Edition des liens croisée
    Par Matthieu Brucher dans le forum Windows
    Réponses: 3
    Dernier message: 22/03/2006, 00h08

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