Singleton und operator
-
ahja wie bekomms du std::endl in dein CLog stream?
-
Danke für die Info. werds auf der stelle Ändern, achja, das mit dem Pointer ist ja gut, aber gibbet keine "elegantere" Lösung?
Denn das hier schreiben ist extrem unschön am Anfang:
*p_Protokoll << "Test" << "test2";
Gibt es denn die Möglichkeit das ca. so hinzukriegen:
Protokoll << "Test" << "Test2";
-
Sicher!
CLog &Protokoll = *CLog::getInstance();Protokoll << "muhkuh";
-
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?