Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Kleine Logging-Funktion

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
10.11.2006, 16:09 Uhr
FunnyDingo



Das Problem ist:
Es könne sein das ich auch mal ein

C++:
int p = 143;
int r = 12;
gl.log("Stats", "There are " + p + " peoples in " + r + " rooms");

aufrufen möchte. Dafür müsste ich ja erneut überladen. Ich kann ja nicht für jeden möglichen Weg eine neue Überladung durchführen.

Wie macht es denn cout? Dort kann ich ja auch

C++:
cout << "There are " << p << " peoples in " << r << " rooms" << endl;

ausführen und genau das bräuchte ich für meine log. Damit ich völlig Variable damit bin, welche Parameter ich übergebe.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
10.11.2006, 16:29 Uhr
alex309



dann

C++:
log(string);
gl.log("Stats" + "There are " + p + " peoples in " + r + " rooms");


dann musst du deine variablen in strings casten

Dieser Post wurde am 10.11.2006 um 16:33 Uhr von alex309 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
10.11.2006, 19:44 Uhr
FunnyDingo




Zitat von alex309:
dann musst du deine variablen in strings casten

Okay, das wäre auch eine Möglichkeit. int zu string casten lässt sich imo ja nicht mit einer Zeile machen, aber da kann ich ja ne kleine Funktion für schreiben.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
13.11.2006, 12:30 Uhr
Th



Dann erstell dir einfach eine Logging Klasse und überlad für diese Klasse dann den Stream-Operator '<<'.

C++:
class Logging
{
public:
  Logging & operator <<(Logging &log, int value);
  Logging & operator <<(Logging &log, const std::string &value);
  ...
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
15.11.2006, 13:19 Uhr
~global
Gast


warum machstes nicht mit ner "variablen" übergabe :

C++:
void StatusMessage( char *pcMsg, ... )
    {
    char caBuf[ 256 ];
    va_list parg;

    va_start( parg, pcMsg );
    wvsprintf( caBuf, pcMsg, parg );
    va_end( parg );
    cout << caBuf << endl;
    }

// der aufruf dann printf()-like
StatusMessage( "Stats, There are %d peoples in %d rooms", p, r );

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
15.11.2006, 19:42 Uhr
FunnyDingo



Da habe ich auch schon dran gedacht, aber ich war der Meinung, irgendwo mal gelesen zu haben, dass dieser Weg in C++ schöner zu lösen sei, deswegen habe ich das erstmal nach hinten geschoben.
--
"Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral." (John James Osborne)

Meine Website: http://www.funnydingo.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: