forked from mgoerens/UTProfiler_P14_Brocheton_Goerens
-
Notifications
You must be signed in to change notification settings - Fork 0
/
singletonTemplate.h
47 lines (40 loc) · 893 Bytes
/
singletonTemplate.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef SINGLETONTEMPLATE_H
#define SINGLETONTEMPLATE_H
template <typename T>
class Singleton
{
protected:
// Constructeur/destructeur
Singleton () { }
~Singleton () { std::cout << "destroying singleton." << std::endl; }
public:
// Interface publique
static T *getInstance ()
{
if (NULL == instance)
{
std::cout << "creating singleton." << std::endl;
instance = new T;
}
else
{
//std::cout << "singleton already created!" << std::endl;
}
//std::cout<<"Valeure de retour de la fonction : "<<instance<<"\n";
return (static_cast<T*> (instance));
}
static void kill ()
{
if (NULL != instance)
{
delete instance;
instance = NULL;
}
}
private:
// Unique instance
static T *instance;
};
template <typename T>
T *Singleton<T>::instance = NULL;
#endif // SINGLETONTEMPLATE_H