Bonjour,
Je veux créer une classe Singleton à base de template pour mon programme et je voudrais donc faire un pointeur vers l'objet Singleton (qui devra de plus être statique pour le reste du programme, pour que ce soit plus pratique). Pour être sûr de manipuler un pointeur 'neuf', je veux l'initialiser à NULL comme par exemple:
J'ai donc essayé de deviner ce que ça donnerait avec un template et j'ai essayé plusieurs syntaxes, mais le compilateur n'en veut pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part ecran* ecran::instance = NULL;
. Je pensais donc à quelque chose comme:
Ce n'est pas tout ce que j'ai essayé mais bon le reste ne marche pas mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 T Singleton::m_instance = NULL; //'T' does not name a type <T*> Singleton::m_instance = NULL; //error: expected unqualified-id before '<' token <T> *Singleton::m_instance = NULL; //error: expected unqualified-id before '<' token... Pour info, la classe se nomme Singleton, le membre à initialiser m_instance et le type est T comme dans la déclaration ci-dessous:
Merci d'avance si vous pouvez m'aider (et que vous le faites
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template <class T> class Singleton { public: static T* getInstance(); static void kill(); protected: Singleton(); ~Singleton(); static T *m_instance; };).
Partager