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 :

Petit problême de construction


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut Petit problême de construction
    Bonjour,
    Alors voilà j'ai un problême assez ennuyant quand j'essaie de construire de construire mon projet...

    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
    Linking console executable: OlalaProject.exe
    .objs\important.o:important.cpp:(.text+0x176): undefined reference to `Singleton<jeu>::getInstance()'
    .objs\important.o:important.cpp:(.text+0x19e): undefined reference to `Singleton<actualisation>::m_instance'
    .objs\important.o:important.cpp:(.text+0x24f): undefined reference to `Singleton<actualisation>::Singleton()'
    .objs\important.o:important.cpp:(.text+0x273): undefined reference to `Singleton<actualisation>::Singleton()'
    .objs\important.o:important.cpp:(.text+0x297): undefined reference to `Singleton<actualisation>::~Singleton()'
    .objs\important.o:important.cpp:(.text+0x2ab): undefined reference to `Singleton<actualisation>::~Singleton()'
    .objs\important.o:important.cpp:(.text+0x2ce): undefined reference to `Singleton<ecran>::m_instance'
    .objs\important.o:important.cpp:(.text+0x34d): undefined reference to `Singleton<ecran>::Singleton()'
    .objs\important.o:important.cpp:(.text+0x361): undefined reference to `Singleton<ecran>::Singleton()'
    .objs\important.o:important.cpp:(.text+0x375): undefined reference to `Singleton<ecran>::Singleton()'
    .objs\important.o:important.cpp:(.text+0x39b): undefined reference to `Singleton<ecran>::Singleton()'
    .objs\important.o:important.cpp:(.text+0x3c1): undefined reference to `Singleton<ecran>::~Singleton()'
    .objs\important.o:important.cpp:(.text+0x3d5): undefined reference to `Singleton<ecran>::~Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x16e): undefined reference to `Singleton<jeu>::m_instance'
    .objs\jeu.o:jeu.cpp:(.text+0x239): undefined reference to `Singleton<jeu>::Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x24d): undefined reference to `Singleton<jeu>::Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x261): undefined reference to `Singleton<jeu>::~Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x275): undefined reference to `Singleton<jeu>::~Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x284): undefined reference to `Singleton<commandes>::m_instance'
    .objs\jeu.o:jeu.cpp:(.text+0x30d): undefined reference to `Singleton<commandes>::Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x321): undefined reference to `Singleton<commandes>::Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x335): undefined reference to `Singleton<commandes>::~Singleton()'
    .objs\jeu.o:jeu.cpp:(.text+0x349): undefined reference to `Singleton<commandes>::~Singleton()'
    .objs\main.o:main.cpp:(.text+0x191): undefined reference to `Singleton<actualisation>::getInstance()'
    .objs\main.o:main.cpp:(.text+0x201): undefined reference to `setLargeurHauteur(int, int)'
    .objs\main.o:main.cpp:(.text+0x22e): undefined reference to `keyboardFunc(unsigned char, int, int)'
    .objs\main.o:main.cpp:(.text+0x23d): undefined reference to `mouseFunc(int, int, int, int)'
    .objs\main.o:main.cpp:(.text+0x24c): undefined reference to `motionFunc(int, int)'
    .objs\redirection.o:redirection.cpp:(.text+0x18a): undefined reference to `Singleton<commandes>::getInstance()'
    .objs\redirection.o:redirection.cpp:(.text+0x1ef): undefined reference to `Singleton<commandes>::getInstance()'
    .objs\redirection.o:redirection.cpp:(.text+0x250): undefined reference to `Singleton<commandes>::getInstance()'
    .objs\redirection.o:redirection.cpp:(.text+0x29e): undefined reference to `Singleton<ecran>::getInstance()'
    .objs\redirection.o:redirection.cpp:(.text+0x2de): undefined reference to `Singleton<actualisation>::getInstance()'
    .objs\redirection.o:redirection.cpp:(.text+0x30e): undefined reference to `Singleton<jeu>::getInstance()'
    .objs\son.o:son.cpp:(.text+0x171): undefined reference to `Singleton<son>::m_instance'
    .objs\son.o:son.cpp:(.text+0x1d9): undefined reference to `Singleton<son>::Singleton()'
    .objs\son.o:son.cpp:(.text+0x239): undefined reference to `Singleton<son>::~Singleton()'
    .objs\son.o:son.cpp:(.text+0x2ab): undefined reference to `Singleton<son>::Singleton()'
    .objs\son.o:son.cpp:(.text+0x30b): undefined reference to `Singleton<son>::~Singleton()'
    .objs\son.o:son.cpp:(.text+0x388): undefined reference to `Singleton<son>::m_instance'
    .objs\son.o:son.cpp:(.text+0x3af): undefined reference to `Singleton<son>::~Singleton()'
    .objs\son.o:son.cpp:(.text+0x3d9): undefined reference to `Singleton<son>::~Singleton()'
    .objs\son.o:son.cpp:(.text+0x43e): undefined reference to `Singleton<son>::m_instance'
    .objs\son.o:son.cpp:(.text+0x465): undefined reference to `Singleton<son>::~Singleton()'
    .objs\son.o:son.cpp:(.text+0x48f): undefined reference to `Singleton<son>::~Singleton()'
    Voilà je n'ai pas réussi à comprendre pourquoi toute la classe Singleton bug et pourquoi 2-3 fonctions aussi (qui n'ont rien à voir)...

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Toutes les classes de ton projets sont complilées et linkées ensemble ?

    Peut être qu'il te faut aussi forcer une reconstruction totale de ton projet
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Par défaut
    Une instance statique dans une classe template qui soit générée automatiquement pour toute spécialisation déclarée dans le projet? C'est possible ça?
    Sinon, j'ai comme l'impression que tu as aussi déclaré les méthodes de ta classe Singleton dans un fichier .cpp...

  4. #4
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Tu pourrais montrer le code du fichier dans lequel tu instancie les membres statiques de ta classe ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    Voilà le code de global.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
    #ifndef _GLOBAL_
    #define _GLOBAL_
     
    #include <iostream>
    #include <string>
    #include <list>
    #include <fstream>
    #include <time.h>
    #include <windows.h>
    #include <GL/glut.h>
     
    template <class T> class Singleton
    {
        public:
        static T* getInstance();
        static void kill();
     
        protected:
        Singleton();
        ~Singleton();
        static T* m_instance;
    };
     
    #endif
    Tous les includes sont destinés au reste du programme.

    Ensuite voilà global.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
    #include "global.h"
     
    template <class T> T* Singleton<T>::m_instance = NULL;
     
    template <class T> T* Singleton<T>::getInstance()
    {
        if(m_instance == NULL)
        {
            m_instance = new T;
        }
     
        return m_instance;
    }
     
    template <class T> void Singleton<T>::kill()
    {
        if(m_instance != NULL)
        {
            delete m_instance;
        }
    }
     
    template <class T> Singleton<T>::Singleton()
    {
        m_instance = static_cast<T>(this);
    }
     
    template <class T> Singleton<T>::~Singleton()
    {
        m_instance = NULL;
    }
    J'ai relu plusieurs fois mais je n'ai rien trouvé...

  6. #6
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Au choix tu peux :
    • mettre les définitions dans le .h
    • renommer ton .cpp en .inl, supprimer l'include du .h et mettre un include du .inl dans le .h (voir faq c++)
    • faire une instanciation explicite de ton template
    • utiliser une classe de singleton déjà écrite (loki, boost?)

    a++

  7. #7
    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
    Citation Envoyé par zais_ethael Voir le message
    Une instance statique dans une classe template qui soit générée automatiquement pour toute spécialisation déclarée dans le projet? C'est possible ça?
    Sinon, j'ai comme l'impression que tu as aussi déclaré les méthodes de ta classe Singleton dans un fichier .cpp...
    Oui, ca peut très bien marcher

    Pour rappel, le code exécutable d'une classe (ou d'une fonction) template est créé à chaque fois à la compilation, car le compilateur n'a aucune idée du type de données qu'il devra utiliser avant, et donc, les définitions de fonctions template (ou les définitions de variables statiques template) doivent apparaitre dans le fichier d'en-tete

    Tout ce que tu as mis dans global.cpp devrait donc etre "remonté" dans global.h, ou, à defaut, il te faudrait décider d'inclure global.cpp au lieu de global.h, ce qui n'est clairement pas recommandé, tant "les usages" font que l'on n'inclue jamais un .cpp

    Ceci dit, je ne suis personnellement pas tout à fait sur qu'il soit opportun de rajouter les inclusions de <windows.h>, <time.h>, <GL/glut.h>, <list>, <string>, <iostream>, et <fstream> dans ce fichier d'en-tete, tant tu crée des dépendances inutiles en le faisant (finalement, tous les fichiers dans lesquels tu va sans doute implémenter une instance de ton singleton n'auront surement pas tous besoin de l'ensemble de ces fichiers )
    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

  8. #8
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Citation Envoyé par Plomeg Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifndef _GLOBAL_
    #define _GLOBAL_
     
    #include <iostream>
    #include <string>
    #include <list>
    #include <fstream>
    #include <time.h>
    #include <windows.h>
    #include <GL/glut.h>
    J'avais pas vu... tu as vraiment besoin de tout ça pour implémenter une classe singleton ? J'en serais étonné.

  9. #9
    Membre Expert
    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
    Par défaut
    Pour continuer dans le sens de Koala, fais attention avec tes includes. Quand ton projet va grossir, il risque d'exploser dans des inclusions cycliques et autres joyeusetés dans lesquelles on évite de perdre trop de temps...
    Une des règles de l'orienté objet, c'est de minimiser le couplage entre classes. Ainsi, chaque classe doit avoir le minimum pour fonctionner seule. Pas plus. Pas moins.

    Bonne Continuation,

    Poukill

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    Désolé d'avoir été si long à répondre, j'avais oublié le post^^, et après les vacances je me suis remis aux tutoriaux, mais maintenant que j'ai réessayé de compiler le projet... pas de surprise ça replante! Donc j'ai fais quelques recherches, et je me suis rappelé que j'avais posté un sujet sur le forum...

    Pour tous les includes de global.h, en fait c'est pour pouvoir tous les mettre au même endroit pour éviter de les oublier, ou de les inclure 2 fois, et comme ils sont finalement communs à pas mal de fichiers,...

    Je suis allez jeter un coup d'oeil sur la FAQ de mon compilateur MinGW et en gros je crois qu'il faudrait (si j'ai bien compris) changer l'ordre de compilation... je ne sais pas faire^^. Quelqu'un pourrait-il m'aider? (ou alors est-ce que quelqu'un a trouvé la solution au problême de départ?)

    Merci d'avance

  11. #11
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    En fait je crois qu'il faut mettre les fonctions template de ta classe dans le header.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    J'ai un début de piste je crois, et en même temps c'est un truc énorme que je ne comprends pas du tout.

    En gros, j'avais un autre problême de linkage dans main.o : un problême avec getInstance, qui pose également problême dans instance.o, et un problême avec une fonction banale (sans templates qui font planter tout le reste). En fait je me suis trompé en écrivant le code et j'ai mis l'adresse d'une fonction avec 4 paramètres, par erreur en copiant bêtement je pense au lieu de regarder la doc. Bref GLUT ne voulait pas de cette fonction mais d'une fonction à 2 arguments (non précisés car inutile), et j'ai donc bêtement fait comme il voulait et je compilais alors sans problême. Le problême est que de l'autre côté, dans un autre fichier, je n'ai pas changé ni la définition ni la déclaration de cette fonction. Bref je m'en suis aperçu et j'ai modifié ça. Maintenant je n'ai plus aucune erreur de linker dans main.o. Je ne sais pas quel était le lien entre les deux erreurs, mais c'est résolu (surtout qu'elles ne se trouvaient pas dans la même fonction). J'espère que vous avez suivi...

    Ce problême ne m'a pas été signalé à la compilation du fichier, donc je voudrais savoir s'il n'y-a pas un moyen de le détecter. Pour info, j'utilise C::B et MinGW.

    Edit: il reste quand même des erreurs dans les autres fichiers

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    coyotte507 -> j'ai un problême dans la compilation de son.o maintenant :

    son.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
    #ifndef _SON_
    #define _SON_
     
    #include "global.h"
    #include <FMOD Ex/fmod.h>
     
    #define MAX_CHANNELS 50
     
    class Son : public Singleton <Son>  //singleton
    {
        friend class Singleton<Son>;
     
        public:
        //static void creer();
     
        void lire(char *chaine);
        void lireMusique(char *chaine);
        void pause(bool b);
     
        protected:
        Son();
        ~Son();
     
        private:
        FMOD_SYSTEM* system;
        FMOD_CHANNEL* channel[MAX_CHANNELS];
        FMOD_SOUND* sound_variable;
        FMOD_RESULT result;
    };
     
    #endif
    son.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
    #include "son.h"
     
    Son::Son()
    { //erreur ici
        FMOD_System_Create(&system);
        FMOD_System_Init(system, MAX_CHANNELS, FMOD_INIT_NORMAL, 0);
    }
     
    Son::~Son()
    {
        FMOD_System_Release(system);
    }
     
    void Son::lire(char *chaine)
    {
        FMOD_System_CreateSound(system, chaine, FMOD_DEFAULT, 0, &sound_variable);
        FMOD_System_PlaySound(system, FMOD_CHANNEL_FREE, sound_variable, false, 0);
    }
     
    void Son::lireMusique(char *chaine)
    {
        FMOD_System_CreateStream(system, chaine, FMOD_LOOP_NORMAL|FMOD_2D|FMOD_HARDWARE, 0, &sound_variable);
        FMOD_System_PlaySound(system, (FMOD_CHANNELINDEX) 0, sound_variable, false, 0);
    }
     
    void Son::pause(bool b)
    {
        FMOD_Channel_SetPaused(channel[0], b);
    }
    Peut-être que ça vient de global.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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    #ifndef _GLOBAL_
    #define _GLOBAL_
     
    #include <iostream>
    #include <string>
    #include <list>
    #include <fstream>
    #include <time.h>
    #include <windows.h>
    #include <GL/glut.h>
     
    #define _INITIAL_WINDOW_X_POSITION_ 0
    #define _INITIAL_WINDOW_Y_POSITION_ 0
    #define _INITIAL_WINDOW_X_SIZE_ 600
    #define _INITIAL_WINDOW_Y_SIZE_ 400
    #define _WINDOW_NAME_ "Olala project reborn"
     
     
     
     
    template <class T> class Singleton
    {
        public:
        static T* getInstance();
        static void kill();
     
        protected:
        Singleton();
        ~Singleton();
        static T *m_instance;
    };
     
    template <class T> T* Singleton<T>::m_instance = NULL;
     
    template <class T> T* Singleton<T>::getInstance()
    {
        if(m_instance == NULL)
        {
            new T;
        }
     
        return m_instance;
    }
     
    template <class T> void Singleton<T>::kill()
    {
        if(m_instance != NULL)
        {
            delete m_instance;
        }
    }
     
    template <class T> Singleton<T>::Singleton()
    {
        m_instance = this;
    }
     
    template <class T> Singleton<T>::~Singleton()
    {
        m_instance = NULL;
    }
     
     
    #endif
    Enfin je suis pas trop sûr d'avoir compris ce qu'il fallait faire... ^^

  14. #14
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Tu peux préciser l'erreur?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    Ben c'est ça: instantiated from here, avec la ligne qui est précisé dans le code de mon dernier post.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    up, je vais tenter de débugger sur Visual Studio 2008, en attendant si quelqu'un sait quel est le problême...

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    Bon j'ai réussi à porter mon projet sous VC++ 9.0. Voici les erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    son.obj : warning LNK4248: jeton typeref non résolu (0100001C) pour 'FMOD_SYSTEM' ; l'image risque de ne pas s'exécuter
    son.obj : warning LNK4248: jeton typeref non résolu (0100001D) pour 'FMOD_SOUND' ; l'image risque de ne pas s'exécuter
    son.obj : warning LNK4248: jeton typeref non résolu (01000020) pour 'FMOD_CHANNEL' ; l'image risque de ne pas s'exécuter
    main.obj : error LNK2020: jeton non résolu (0A0002C2) "public: static class Interface * __cdecl Singleton::getInstance(void)" (?getInstance@?$Singleton@VInterface@@@@$$FSAPAVInterface@@XZ)
    interface.obj : error LNK2028: jeton non résolu (0A0002CC) "public: static class Interface * __cdecl Singleton::getInstance(void)" (?getInstance@?$Singleton@VInterface@@@@$$FSAPAVInterface@@XZ) référencé dans la fonction "void __cdecl redirection_displayFunc(void)" (?redirection_displayFunc@@$$FYAXXZ)
    son.obj : error LNK2028: jeton non résolu (0A0002C3) "protected: __thiscall Singleton::Singleton(void)" (??0?$Singleton@VSon@@@@$$FIAE@XZ) référencé dans la fonction "protected: __thiscall Son::Son(void)" (??0Son@@$$FIAE@XZ)
    son.obj : error LNK2028: jeton non résolu (0A0002C4) "protected: __thiscall Singleton::~Singleton(void)" (??1?$Singleton@VSon@@@@$$FIAE@XZ) référencé dans la fonction "protected: __thiscall Son::Son(void)" (??0Son@@$$FIAE@XZ)
    interface.obj : error LNK2019: symbole externe non résolu "public: static class Interface * __cdecl Singleton::getInstance(void)" (?getInstance@?$Singleton@VInterface@@@@$$FSAPAVInterface@@XZ) référencé dans la fonction "void __cdecl redirection_displayFunc(void)" (?redirection_displayFunc@@$$FYAXXZ)
    main.obj : error LNK2001: symbole externe non résolu "public: static class Interface * __cdecl Singleton::getInstance(void)" (?getInstance@?$Singleton@VInterface@@@@$$FSAPAVInterface@@XZ)
    son.obj : error LNK2019: symbole externe non résolu "protected: __thiscall Singleton::~Singleton(void)" (??1?$Singleton@VSon@@@@$$FIAE@XZ) référencé dans la fonction "protected: __thiscall Son::Son(void)" (??0Son@@$$FIAE@XZ)
    son.obj : error LNK2019: symbole externe non résolu "protected: __thiscall Singleton::Singleton(void)" (??0?$Singleton@VSon@@@@$$FIAE@XZ) référencé dans la fonction "protected: __thiscall Son::Son(void)" (??0Son@@$$FIAE@XZ)
    Pareil les erreurs surviennent à l'édition de liens.

  18. #18
    Membre Expert
    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

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 136
    Par défaut
    Non désolé c'est déjà fait ça...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    template<class T> T* Singleton<T>::m_instance = NULL;

  20. #20
    Membre Expert
    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
    Par défaut
    Alors celui là ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. un petit problème d'algo
    Par supertramp dans le forum Algorithmes et structures de données
    Réponses: 22
    Dernier message: 12/10/2004, 20h13
  2. Petit problème de décimales !
    Par ridan dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/09/2004, 21h24
  3. Réponses: 17
    Dernier message: 13/07/2004, 20h37
  4. petit problème premier plan, arrière plan
    Par gros bob dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2004, 12h00
  5. [jointure] Petit problème sur le type de jointure...
    Par SteelBox dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/02/2004, 18h55

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