Ho 3 classi parametriche (con i template) di cui una implementa il pattern singleton. il problema è che nel punto in cui richiedo il puntatore al singleton(classi A e B metodo collect() ) il compilatore mi dice che l'oggetto singleton non è stato istanziato.
dovre forse parametrizzare in q,w,e,r,t,y anche A e B ed usare singleton<q,w,e,r,t,y>::getInstance().method(.....); ?
puo' avere conseguenze usare troppi tipi in un template?
ps: il seguente è una specie di pseudocodice in c++ per spiegare il problema
class singleton<q,w,e,r,t,y>{
private :
costruttore(){ resultSum=0}
static *singleton<q,w,e,r,t,y> ptr=NULL;
int resultSum;
public:
*singleton<q,w,e,r,t,y> getInstance();
void method(int partialSum){
lock(); // threadSafe
resultSum+=partialSum;
unlock();
}
}
class A<q,w,e,r>{
public:
void collect(int sum){
singleton::getInstance().method(sum);
}
}
class B<e,r,t,y>{
public:
void collect(int sum){
singleton::getInstance().method(sum);
}
}
Ultima modifica effettuata da tekdu il 15/08/2012 alle 16:12 |