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 :

[linker error] undefined reference


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Novembre 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 88
    Par d�faut [linker error] undefined reference
    Bonjour � tous, je fait appel � votre exp�rience afin de m'aider � corriger un probl�me dans un programme c++ .

    le probl�me c'est que je re�ois le message ci dessous et ne comprend pourquoi :
    [linker error] undefined reference 'Game::singleton'
    [linker error] undefined reference 'Game::singleton'
    [linker error] undefined reference 'Game::singleton'

    voici le code si vous voulez y jeter un coup d'oeil:

    //fichier Game.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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    #ifndef H_Game
    #define H_Game
     
    using namespace std;
     
    #include <vector>
    #include <iostream>
    #include <stdexcept>
     
    #include "Slot.h"
    #include "types.h"
     
    //singleton class
    class Game{
     
          vector<column> grid;
          bool humain;
          Pawn humainPawn;
          //pointer to singleton
          static Game* singleton;
     
          Game(){}
          Game(const Game &);
          ~Game(){delete singleton;}
          void operator=(const Game &);
     
    public:
           //setters and getters
           inline bool isHumain(){return humain;}
           inline Pawn getHumainPawn(){return humainPawn;} 
           inline void setHumain(bool h){humain = h;}
           inline void setHumainPawn(Pawn hp){humainPawn = hp;}
           static Game* getInstance(){
                  if(singleton == NULL){'
                                 singleton = new Game;
                  }
                  return singleton;
           }
     
           ostream& operator<< (vector<column> grid); //fin de page 1
           //overrides output stream writer
           void init(bool,Pawn&);
           //initialises the humain pawn and sets humain turn
           bool isFreeColumn(int);
           //return true if column in parameter has a free place for a pawn
           int getFirstFreeSpot(int);
           //return the first free place int column given in parameter
           int whoWins();
           //return 1 if humain wins, -1 if computer wins, 0 it is draw game
           void nextMove()throw (out_of_range&, logic_error&);
    };
     
    #endif

    //fichier Game.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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    #include "Game.h"
     
    ostream& operator<<(ostream& out, vector<column> grid){
             for(vector<column>::iterator it = grid.begin();it!= grid.end();it++){               
                   column c = *it;
                   for(vector<Slot>::iterator s = c.begin();s!=c.end();s++){
                          cout << s->getColor() <<endl;                          
                   }
             }         
    }
     
    void init(bool h,Pawn& hp){
         Game* game = Game::getInstance();
         game->setHumain(h);
         game->setHumainPawn(hp);
    }
     
    bool isFreeColumn(int){
     
    }
     
    int getFirstFreeSpot(int){
     
    }
     
    int whoWins(){
     
    }
     
    void nextMove()throw (out_of_range&, logic_error&){
     
    }

  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 : 35
    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,

    Merci de regarder dans la FaQ avant de poser une question.

    Il faut que tu d�finises explicitement tes donn�es membres statique.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par d�faut
    Hello

    Les singletons, c'est mal. Voir ici et ici.

  4. #4
    Membre confirm�
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Novembre 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 88
    Par d�faut
    c'est oblig� car c'est un exercice qui d�fini les classes et m�thodes � impl�mente et il demande que Game soit un singleton.

  5. #5
    Membre confirm�
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Novembre 2008
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2008
    Messages : 88
    Par d�faut
    @Flob90: merci pour le lien, j'ai mit Game::singleton=NULL dans le fichier .cpp et �a marche nickel merci

  6. #6
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut
    Citation Envoy� par velocity Voir le message
    c'est oblig� car c'est un exercice qui d�fini les classes et m�thodes � impl�mente et il demande que Game soit un singleton.
    Et pourtant, tu pourrais dire � ton prof (je pr�sumes que c'est ca ) que, en l'esp�ce, le "pattern monostate" (cf les liens de jblecanard )serait bien meilleur, ne serait-ce que pour qu'il soit manipul� de la m�me mani�re que tous les autres objets
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 20/06/2007, 12h34
  2. [Linker error] undefined reference to ..
    Par lichman dans le forum C++
    R�ponses: 5
    Dernier message: 15/01/2007, 16h50
  3. R�ponses: 1
    Dernier message: 14/11/2006, 11h12
  4. [Linker error] undefined reference to...
    Par z980x dans le forum C++
    R�ponses: 4
    Dernier message: 05/03/2006, 15h30
  5. [Linker error] undefined reference to 'IcmpSendEcho@'
    Par Xevious dans le forum Autres �diteurs
    R�ponses: 7
    Dernier message: 29/12/2005, 16h45

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