Voila mon probleme:
J'utilise le template:
template <typename T>
class singleton
{
protected:
// Constructor/Destructor
singleton( ) {
}
// Supprime l instance de la classe si elle a été crée
~singleton( ){
if( m_pInstance != NULL ){
delete m_pInstance;
m_pInstance = 0;
}
}
public:
// renvoie une instance de la classe, la crée si elle n existe pas
static T *GetInstance( void ){
if( m_pInstance == NULL ){
m_pInstance = new T;
}
return ((T *)m_pInstance);
}
private:
static T *m_pInstance; // instance unique de la classe
};
template <typename T> T *singleton<T>::m_pInstance = NULL;
J'ai 3 classes:
A, B et C
A singleton
B hérite de A
C utilise le singleton A
Mon probleme est le suivant, lorsque j'initialise B cela crée une classe mere A, qui n'est pas prise en compte pour le m_pInstance. Et du coup, lorsque je récupere A dans C, j'obtiens 2 classes A différentes, au lieu d'une.
Comment faire pour éviter cela?