<?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[Funktionen in allen Klassen bereitstellen]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>habe mal wieder eine Frage. Folgende Beispielsituation: Ich habe 3 Klassen (A, B und C). Klasse A erbt die Klassen B und C, also eine einfache Mehrfachvererbung. Nun möchte ich in allen Klassen eine Log-Funktionalität integrieren. Was wäre dafür der beste Lösungsansatz?</p>
<p>Mir sind jetzt 2 Optionen eingefallen:<br />
1. Ich erzeuge eine Log-Klasse, die von den Klassen B und C via &quot;virtual public MyLogClass&quot; geerbt werden.<br />
2. Ich erstelle einen Namensraum mit den benötigten Funktionen, auf die alle Klassen zugreifen können.</p>
<p>Hat jemand mit sowas Erfahrungen gemacht? Ist es ein schlechter Programmierstil, wenn man Funktionen in Klassen verwendet, die nicht in dieser gekapselt sind? (in meinem Fall sowas wie setLogMessage(std::string message), die in allen Programmteilen verfügbar sein soll)</p>
<p>viele Grüße,<br />
SBond</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/335754/funktionen-in-allen-klassen-bereitstellen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 20 Apr 2026 08:40:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/335754.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Dec 2015 08:10:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionen in allen Klassen bereitstellen on Wed, 09 Dec 2015 08:10:14 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>habe mal wieder eine Frage. Folgende Beispielsituation: Ich habe 3 Klassen (A, B und C). Klasse A erbt die Klassen B und C, also eine einfache Mehrfachvererbung. Nun möchte ich in allen Klassen eine Log-Funktionalität integrieren. Was wäre dafür der beste Lösungsansatz?</p>
<p>Mir sind jetzt 2 Optionen eingefallen:<br />
1. Ich erzeuge eine Log-Klasse, die von den Klassen B und C via &quot;virtual public MyLogClass&quot; geerbt werden.<br />
2. Ich erstelle einen Namensraum mit den benötigten Funktionen, auf die alle Klassen zugreifen können.</p>
<p>Hat jemand mit sowas Erfahrungen gemacht? Ist es ein schlechter Programmierstil, wenn man Funktionen in Klassen verwendet, die nicht in dieser gekapselt sind? (in meinem Fall sowas wie setLogMessage(std::string message), die in allen Programmteilen verfügbar sein soll)</p>
<p>viele Grüße,<br />
SBond</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478790</guid><dc:creator><![CDATA[SBond]]></dc:creator><pubDate>Wed, 09 Dec 2015 08:10:14 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen in allen Klassen bereitstellen on Wed, 09 Dec 2015 10:14:40 GMT]]></title><description><![CDATA[<p>Freie Funktionen sind ja kein Teufelszeug. Wenn Deine Klassen nicht primär dem loggen dienen, dann würde ich die Klassen auch nicht durch zusätzliche Funktionalitäten komplizierter machen. Wahrscheinlich brauchst Du das später auch in D und E und in F auch noch mal.</p>
<p>Hier ist ein Beispiel, wie ich das mal gemacht habe <a href="http://robitzki.de/log.h" rel="nofollow">log.h</a>, <a href="http://robitzki.de/log.cpp" rel="nofollow">log.cpp</a>. Das darfst Du auch gerne verwenden.</p>
<p>mfg Torsten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2478803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478803</guid><dc:creator><![CDATA[Torsten Robitzki]]></dc:creator><pubDate>Wed, 09 Dec 2015 10:14:40 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen in allen Klassen bereitstellen on Wed, 09 Dec 2015 10:52:10 GMT]]></title><description><![CDATA[<p>cool danke <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>
<p>Muss mich da noch etwas einarbeiten, da mein Wissen über C++ noch nicht so umfangreich ist. Dein Quellcode sieht wesentlich professioneller aus als meiner. Aber man wächst ja mit den Aufgaben. Wie ich sehe bietet die Boost-Lib auch shared pointer an. ...könnte für mich praktisch sein, da ich momentan nicht mit C++11 arbeite.</p>
<p>Torsten Robitzki schrieb:</p>
<blockquote>
<p>Wahrscheinlich brauchst Du das später auch in D und E und in F auch noch mal.</p>
</blockquote>
<p>Ja da hast du Recht. So gesehen ist es die Frage wie man Code optimal organisiert. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2478812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2478812</guid><dc:creator><![CDATA[SBond]]></dc:creator><pubDate>Wed, 09 Dec 2015 10:52:10 GMT</pubDate></item></channel></rss>