begin process at 2012 05 28 09:44:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Automate Singleton pb de linkage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Automate Singleton pb de linkage

mardi 27 juillet 2004 à 11:09:17 | Automate Singleton pb de linkage

9sber

J'essai de construire un petit prog qui mets en oeuvre un automate de singleton comme suit.
Mais à la compilation j'ai des pbs de Linkage.


J'ai une classe mère pour mes singleton:

class Callmain;
//generic class for singleton
class CallState{
public:
virtual void action(Callmain*,QString);
protected:
void changeState(Callmain*,CallState*);
};



J'ai ensuite plusieurs singletons filles:

#include "CallState.h"
class CallReleased:public CallState{
protected:
CallReleased(){}
private:
static CallState* instance;
public:
friend class CallState;
static CallState* Instance(){
if(instance==NULL)
return instance=new CallReleased();
return instance;}
void action(Callmain*,QString);
};



et enfin, une classe qui dirige le tout:

#include "CallReleased.h"
class Callmain{
private:
friend class CallState;
void changeState(CallState*);
CallState* actualState;
public:
Callmain(){actualState=CallReleased::Instance();}
~Callmain();
void action(QString);
};



voilà pour le prog, maintenant, voici mon erreur:

Callmain.obj : error LNK2001: unresolved external symbol "private: static class CallState * CallReleased::instance" (?instance@CallReleased@@0PAVCallState@@A)


Je ne comprends pas très bien ce qu'il me reproche.

9Sber

mardi 27 juillet 2004 à 12:05:24 | Re : Automate Singleton pb de linkage

essirc

Salut,

Il me semble que ton problème viens du fait que ton :
"friend class CallState;" est mal placé.

Tu devrais avoir :

#include "CallReleased.h"
class Callmain{
friend class CallState; // <--- Juste après l'accolade ouvrante
private:
void changeState(CallState*);
CallState* actualState;
public:
Callmain(){actualState=CallReleased::Instance();}
~Callmain();
void action(QString);
};
mardi 27 juillet 2004 à 13:11:26 | Re : Automate Singleton pb de linkage

9sber

merci pour la proposition, mais ca ne change rien.
D'ailleurs ca ne change rien non plus si on enlève cette ligne ainsi que celle du constructeur vide et du friend dans la classe CallReleased
mercredi 28 juillet 2004 à 14:19:54 | Re : Automate Singleton pb de linkage

9sber

Réponse acceptée !
Je pense avoir résolu mon pb en ajoutant cette ligne dans le .cpp de mais différentes classes filles:

CallReleased * CallReleased ::instance=0;
...



Cette discussion est classée dans : class, instance, callstate, callmain, callreleased


Répondre à ce message

Sujets en rapport avec ce message

Déclaration d'une class [ par Turok ] Salut, Je débute en C++, et dans mon prog j'ai créer une class. Le prob, c'est que quand une instance de cette class (Class_object objet(""), pour pou connaître l'instance de class [ par jerame ] Bonjour à tous, J'ai plusieurs class qui héritent les unes des autres, je souhaiterais connaître l'instance de ma class, pour savoir si je suis au bo Instance utilisable dans plusieurs forms VC++.net ? [ par baptistemazet ] Bonjour,    Je développe une application VC++.net pour laquelle je souhaite réutiliser une instance dans d'autres forms que Form1. Comment dois-je m'y MDI et plusieurs types de vues [ par doggyk ] Bonjour, Je cherche à développer une application MDI qui possède une fenêtre semblable à Visual C++, c'est-à-dire un arbre sur la partie de gauche (C Lancer une seule instance de mon .exe [ par Helau ] Voilà, tout est résumé dans le titre !Je voudrais pouvoir lancer qu'une seule fois mon .exe.Mais, je ne sais pas comment controler si mon prog est déj Instance Hellp plz [ par T_Mehdi ] salut a tous je voudrai savoir comment faire cela on c++(VC++)voila le code vbIf (App.PrevInstance) ThenMsgBox "L'application déjà lancée.", vbCritica class dialog borland 4 [ par rems38 ] Bonjour j'ai une applicatin qui refuse de tourner car il manque une classla classe suivant crée l'erreur "Call to undfined function TResID":class TDia Suppression d'une instance de classe avec patron [ par jeanlandercy ] Bonjour,Je découvre avec joie les patrons de classe. J'ai dans l'idée de créer un patron de maillon pour liste. La conception, c'est ok, mais la suppr CLASS [ par T_Mehdi ] salut a tous bon , j'ai la 2eme question au faite relié a cette parti de source la : class ILogger{public :   <SPAN class=cpp_ C++ questionaire [ par fcoutel ] Bonjour,On m'a donne un questionnaire a remplir est ce que quelq'un connait les reponses ? <SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: Verda


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,758 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales