<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[OOP]]></title><description><![CDATA[<p>Hey Leute,<br />
Ich arbeite zurzeit an einem Logger jedoch habe ich ein Problem:<br />
Dieser Code wurde von mir schlampig geschrieben (meine meinung ;))<br />
un ich wüde gerne wissen wie ich ihn verbessern könnte:</p>
<pre><code>void Logger::send(const std::string&amp; message)
{
    time_t t = time(0);
    struct tm *now = localtime(&amp; t);
    std::ofstream log(&quot;server.log&quot;, std::ios::app);
    write(localtime(&amp; t), log, message);
    std::cout &lt;&lt; now-&gt;tm_hour &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_min &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_sec &lt;&lt; &quot; &quot; &lt;&lt; message + &quot;\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/331679/oop</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 14:52:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/331679.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Mar 2015 16:01:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OOP on Fri, 13 Mar 2015 16:01:03 GMT]]></title><description><![CDATA[<p>Hey Leute,<br />
Ich arbeite zurzeit an einem Logger jedoch habe ich ein Problem:<br />
Dieser Code wurde von mir schlampig geschrieben (meine meinung ;))<br />
un ich wüde gerne wissen wie ich ihn verbessern könnte:</p>
<pre><code>void Logger::send(const std::string&amp; message)
{
    time_t t = time(0);
    struct tm *now = localtime(&amp; t);
    std::ofstream log(&quot;server.log&quot;, std::ios::app);
    write(localtime(&amp; t), log, message);
    std::cout &lt;&lt; now-&gt;tm_hour &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_min &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_sec &lt;&lt; &quot; &quot; &lt;&lt; message + &quot;\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2446627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446627</guid><dc:creator><![CDATA[aidenchloe7]]></dc:creator><pubDate>Fri, 13 Mar 2015 16:01:03 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Fri, 13 Mar 2015 19:39:33 GMT]]></title><description><![CDATA[<p>log sollte eine Klassenvariable sein.</p>
<p>Soll eine der Ausgaben wirklich fix nach cout geschrieben werden?</p>
<p>Warum rufst du 2x localtime auf, wenn du doch das Ergebnis vom ersten Mal noch hast?</p>
<p>Können mehrere Threads auf den gleichen Logger zugreifen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446662</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446662</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 13 Mar 2015 19:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sat, 14 Mar 2015 16:54:44 GMT]]></title><description><![CDATA[<p>Hallo SeppJ,</p>
<p>Du hast recht mir ist gar ncht aufgefallen das localtime 2x erstellt wird. Habe das jetzt geändert allerdings weiss ich nicht ob ich für den Logger printf verwenden soll daher mir das nicht empfohlen wurde. Könntest du mir bitte ein beispiel zeigen wie du es machen würdest? Hier der ganze aufbau des Loggers der von dem ganzen Programm aufgerufen wird:</p>
<pre><code>void Logger::info(const std::string&amp; message)
{
    send(&quot;[INFO] &quot; + message);
}

void Logger::send(const std::string&amp; message)
{
    time_t t = time(0);
    struct tm *now = localtime(&amp; t);
    std::ofstream log(&quot;server.log&quot;, std::ios::app);
    write(now, log, message);
    std::cout &lt;&lt; now-&gt;tm_hour &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_min &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_sec &lt;&lt; &quot; &quot; &lt;&lt; message + &quot;\n&quot;;
}

Logger &amp; Logger::getInstance()
{
    static Logger Instance;
    return Instance;
}

void LOG(const std::string&amp; message)
{
    Logger::getInstance().info(message);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2446782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446782</guid><dc:creator><![CDATA[aidenchloe7]]></dc:creator><pubDate>Sat, 14 Mar 2015 16:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sat, 14 Mar 2015 17:53:31 GMT]]></title><description><![CDATA[<p>Mal ne ganz doofe Frage: was macht die &quot;Logger&quot; Klasse? Hat die auch irgendwelche Member?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446786</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 14 Mar 2015 17:53:31 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sat, 14 Mar 2015 18:15:32 GMT]]></title><description><![CDATA[<p>Ob du printf oder cout benutzt ist doch egal, das ändert nichts an dem, was ich gesagt habe. Beide schreiben nach stdout und ich stelle in Frage, ob das eine gute Idee ist.</p>
<p>Die erste und wichtigste Bemerkung, über log als Klassenvariable, scheinst du komplett zu ignorieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446788</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 14 Mar 2015 18:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sat, 14 Mar 2015 18:55:10 GMT]]></title><description><![CDATA[<p>aidenchloe7 schrieb:</p>
<blockquote>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox101853" checked="true" /><label for="checkbox101853">verwenden soll daher mir das nicht empfohlen wurde. [...]</label></div></p>
</blockquote>
<p>. o O ( Ich frag mich immer, wie solche Menschen <em>reden</em> *eeek* )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446791</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Sat, 14 Mar 2015 18:55:10 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 13:33:13 GMT]]></title><description><![CDATA[<p>Hey Sepp warum sollte LOG eine Klassenvariable sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446830</guid><dc:creator><![CDATA[aidenchloe7]]></dc:creator><pubDate>Sun, 15 Mar 2015 13:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 14:03:45 GMT]]></title><description><![CDATA[<p>aidenchloe7 schrieb:</p>
<blockquote>
<p>Hey Sepp warum sollte LOG eine Klassenvariable sein?</p>
</blockquote>
<p>Du oeffnest die Datei jedes Mal und schliesst sie wieder. Das ist sehr langsam und kann zu Fehlern fuehren, wenn sich die Datei irgendwann mal nicht oeffnen laesst.<br />
Stattdessen lohnt es sich, sie einmal zu oeffnen und solange offen zu halten, wie man braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446835</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Sun, 15 Mar 2015 14:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 14:26:49 GMT]]></title><description><![CDATA[<p>Aber Marthog ich habe eine Logger instance erstellt. Weshalb sollte ich noch eine weitere erstellen. Wenn ich etwas Logger verwende ich:</p>
<pre><code>LOG(&quot;Das ist mien Beispiel Log&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2446837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446837</guid><dc:creator><![CDATA[aidenchloe7]]></dc:creator><pubDate>Sun, 15 Mar 2015 14:26:49 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 14:43:58 GMT]]></title><description><![CDATA[<p>Trotzdem öffnest du die Datei durch den Erstellen des ofstreams jedes Mal!</p>
<p>BTW: &gt;&lt;((((°&gt; ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446838</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 15 Mar 2015 14:43:58 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 14:44:16 GMT]]></title><description><![CDATA[<p>Du hast eine Loggerinstanz, aber oeffnest die Datei immer wieder neu in</p>
<pre><code>std::ofstream log(&quot;server.log&quot;, std::ios::app);
    write(now, log, message);
    std::cout &lt;&lt; now-&gt;tm_hour &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_min &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_sec &lt;&lt; &quot; &quot; &lt;&lt; message + &quot;\n&quot;;
</code></pre>
<p>Oeffne die Datei einmal in Constructor und behalte sie dann offen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446839</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Sun, 15 Mar 2015 14:44:16 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 20:17:17 GMT]]></title><description><![CDATA[<p>So un besser <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code>void Logger::send(const std::string&amp; message)
{
    time_t t = time(0);
    struct tm *now = localtime(&amp; t);
    static std::ofstream log(&quot;server.log&quot;, std::ios::app);
    write(now, log, message);
    std::cout &lt;&lt; now-&gt;tm_hour &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_min &lt;&lt; &quot;:&quot; &lt;&lt; now-&gt;tm_sec &lt;&lt; &quot; &quot; &lt;&lt; message + &quot;\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2446859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446859</guid><dc:creator><![CDATA[aidenchloe7]]></dc:creator><pubDate>Sun, 15 Mar 2015 20:17:17 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 20:46:53 GMT]]></title><description><![CDATA[<p>Wieso dann überhaupt eine Klasse? Schreibe direkt eine freie Funktion ohne die Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446861</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 15 Mar 2015 20:46:53 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 20:49:43 GMT]]></title><description><![CDATA[<p>Nathan ich verstehe das nicht, was für eine Klasse/Funktion?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446862</guid><dc:creator><![CDATA[aidenchloe7]]></dc:creator><pubDate>Sun, 15 Mar 2015 20:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 20:57:12 GMT]]></title><description><![CDATA[<p>Du hast eine Klasse Logger ohne Membervariablen als Singleton.<br />
Sie ist absolut überflüssig. Schreibe direkt eine freie Funktion.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446863</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 15 Mar 2015 20:57:12 GMT</pubDate></item><item><title><![CDATA[Reply to OOP on Sun, 15 Mar 2015 21:23:06 GMT]]></title><description><![CDATA[<p>Mit freire Funktionen meinst du schon externe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2446864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2446864</guid><dc:creator><![CDATA[aidenchloe7]]></dc:creator><pubDate>Sun, 15 Mar 2015 21:23:06 GMT</pubDate></item></channel></rss>