Ich bin gerade "just for fun" auf die Idee gekommen eine Singletoneklasse für mein Objektmanager auf Template zu trimmen. Nun weiß ich nicht, ob das funktionieren kann. Was ich erreichen will ist eine Instance pro Klassenobjekt. Hier mal das reduzierte Problem (naja den einen Compilierfehler konnte ich gerade bein posten beheben), aber ist das so richtig?
|
C-/C++-Quelltext
|
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
|
//In .h File
template <class T>
class ObjectManager
{
private:
ObjectManager(){}
ObjectManager(const ObjectManager&);
ObjectManager& operator=(const ObjectManager&);
public:
static ObjectManager* Instance();
};
//so kompilierts nicht
template <class T>
ObjectManager* ObjectManager<T>::Instance()
{
static ObjectManager instance;
return &instance;
}
//kompiliert aber richtig?
template <class T>
ObjectManager<T>* ObjectManager<T>::Instance()
{
static ObjectManager instance;
return &instance;
}
|