Hallo,
ihr kennt sicher die Singleton-Klasse aus dem Buch:
|
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
32
33
|
#ifndef SINGLETON_HPP
#define SINGLETON_HPP
template <class T> class TSingleton
{
public:
virtual ~TSingleton() { }
inline static T *Get()
{
if (!m_pSingleton)
m_pSingleton = new T;
return (m_pSingleton);
}
static void Del()
{
if (m_pSingleton)
{
delete (m_pSingleton);
m_pSingleton = NULL;
}
}
protected:
static T *m_pSingleton;
};
// Create static var
template <class T> T *TSingleton<T>::m_pSingleton = 0;
#endif
|
Hier bekomme ich relativ oft (meistens wenn ich irgendeine neue Klasse erstelle und benutze) einen Fehler der wie folgt aussieht:
in der Zeile mit: m_pSingleton = new T;
kommt
error: no matching function for call to `CGame::CGame()'
note: candidates are: CGame::CGame(const CGame&)
CGame ist meine Hauptklasse, welche von TSingleton abgeleitet ist.
Allerdings funktioniert das sonst immer ganz normal, und ich verstehe auch nicht, was ich da ändern soll... Meistens kriege ich den Fehler (von dem ich nicht verstehe wie er zustande kommt) weg, indem ich so lange mit den #includes etc rumspiele, bis es auf einmal funktioniert... :shock: :?
Kennt jemand vielleicht diesen Fehler oder kann sich denken, woher das kommt? Ich würde jetzt hier nur ungern das komplette Zusammenspiel all meiner Klassen und Dateien erklären... falls jemand mit Ahnung sich mein Programm mal ansehen möchte (ich denke der Fehler ist mit viel Ahnung sicher schnell zu finden
) kann ich demjenigen mal alles schicken (bzw. nen link geben)... allerdings würde ich jetzt ungern meinen kompletten Code öffentlich zugänglich machen