Singleton und operator
-
CLog & Protokoll = *CLog::getInstance();
dann würde ich auch noch den rückgabe typ von getInstanz von pointer zu referenz umändern
-
@Dimah & <doch>
Hm also ich hab jetzt die getInstance zu ner Referenz gemacht, doch es gibt da trotzdem errors.static CLog &getInstance (void) { return (m_Instance); }
und ich bekomme bei der Zeile hier:
CLog &Protokoll = *CLog::getInstance();
diesen Error:
error C2100: illegal indirection
-
Wenn du ne Referenz zurückgibst brauchst nicht mehr zu dereferenzieren (das * weglassen)
-
tschuldigung aber dein operator<< ist der größte Müll. Schau dich mal n bischen in STL Quellcode um oder nimm das nächst beste Buch zur Hand.
-
Original erstellt von Lars:
Wenn du ne Referenz zurückgibst brauchst nicht mehr zu dereferenzieren (das * weglassen)Hi,
wenn ich das hier schreibe:
CLog &Protokoll = *CLog::getInstance();
schmiert das programm ab
-
Original erstellt von Blue Angel:
**Hi,wenn ich das hier schreibe:
CLog &Protokoll = *CLog::getInstance();
schmiert das programm ab**
Ja, weil du dereferenzierst. Du sollst das * weglassen
-
wenn ich es weglasse compiliert er fehlerfrei, aber bei ausführen einer funktion schmiert er ab
-
dann finde heraus, wo es passiert
-
habs hinbekommen, thx für die hilfe
@Lars:
wie hättest du den operator<< denn gemacht?[ Dieser Beitrag wurde am 29.03.2003 um 10:32 Uhr von Blue Angel editiert. ]
-
template<class T>
CLog& operator<<(T& t)
{
m_Stream << t;
}
Deiner dürfte noch nichtmal funktionieren
-
Achja deiner schmiert ja deswegen auch ab.
Wie kommst du überhaupt auf void*
/€dit: Wieso wurde ich auf Seite 2 weitergeleitet die es gar nicht gibt.
Das bezieht sich auf den letzten Post.[ Dieser Beitrag wurde am 29.03.2003 um 10:35 Uhr von Lars editiert. ]
-
also so funzt er eigentlich prima! Naja das mit dem Template guck ich mir mal an. das mit void* is was ganz einfaches Adressen speichern, is zwar eigentlich nicht zu gebrauchen, aber habs einfach mal aus lust und laune reingebaut
-
Ach du willst nur die Adressen speichern?