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
