<?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[[SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich denke momentan über die naive Implementierung eines meiner Programme nach und hatte folgende Idee: Momentan laufen mehrere Threads, wobei ein thread eine Funktion einer Klasse ist. Alle threads teilen sich dabei bestimmte Variablen:</p>
<pre><code>// Pseudocode
class:
    run()  // wird als thread gestartet

    static sharedData1;
    static sharedData2;
    static mutex
</code></pre>
<p>Wäre sowas denn besser:</p>
<pre><code>// Pseudocode
struct shared:
    sharedData1
    sharedData2

class:
    shared_ptr&lt;shared&gt; data;
    // bzw. Reference, oder raw Pointer
    mutex
</code></pre>
<p>Ich versuche mich zu verbessern und möchte nun wissen, ob ich mit dem Gedanken richtig liege. Oder ob es eine weitere Möglichkeit gibt.</p>
<p>Ich hoffe mein Problem ist deutlich dargestellt.</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/339611/solved-shared-data-in-classes-static-oder-shared_ptr-lt-gt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 23:04:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339611.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Sep 2016 15:28:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;? on Tue, 13 Sep 2016 20:59:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich denke momentan über die naive Implementierung eines meiner Programme nach und hatte folgende Idee: Momentan laufen mehrere Threads, wobei ein thread eine Funktion einer Klasse ist. Alle threads teilen sich dabei bestimmte Variablen:</p>
<pre><code>// Pseudocode
class:
    run()  // wird als thread gestartet

    static sharedData1;
    static sharedData2;
    static mutex
</code></pre>
<p>Wäre sowas denn besser:</p>
<pre><code>// Pseudocode
struct shared:
    sharedData1
    sharedData2

class:
    shared_ptr&lt;shared&gt; data;
    // bzw. Reference, oder raw Pointer
    mutex
</code></pre>
<p>Ich versuche mich zu verbessern und möchte nun wissen, ob ich mit dem Gedanken richtig liege. Oder ob es eine weitere Möglichkeit gibt.</p>
<p>Ich hoffe mein Problem ist deutlich dargestellt.</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508513</guid><dc:creator><![CDATA[HarteWare]]></dc:creator><pubDate>Tue, 13 Sep 2016 20:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;? on Tue, 13 Sep 2016 16:41:43 GMT]]></title><description><![CDATA[<p>Es stellt sich die Frage, warum es überhaupt eine Klasse ist. &quot;Weil es objektorientiert ist&quot; ist keine gültige Antwort.</p>
<p>Ansonsten: was findest du an der zweiten Lösung besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508543</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 13 Sep 2016 16:41:43 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;? on Tue, 13 Sep 2016 18:05:40 GMT]]></title><description><![CDATA[<p>Warum class und keine Funktion? Weil ich bestimmte Teile habe, die für jede Instanz doch unterschiedlich sind. Das wäre der NetworkAdapter (pcap_if*), auf dem packets gecaptured werden.</p>
<p>Warum muss ich davon mehrere haben, wenn doch alles über denselben laufen sollte? Weil ich nicht weiß, wie ich programmatisch herausfinden kann, welcher der richige ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /> Außer vielleicht 10 Sekunden lang alle abhören und nur den verwenden, auf dem Daten übertragen werden.</p>
<p>Vermutlich habe ich mit meinem Projekt angefangen ohne ausreichend technisches Wissen.</p>
<p>Was finde ich an der zweiten Lösung besser? Nix, braucht auch mehr RAM soweit ich weiß. Wusste nur nicht, ob ich vielleicht den Sinn von <code>static</code> missbrauche.</p>
<p>Vielen Dank für die Antwort, hat schon wieder eine Denklawine bei mir ausgelöst.</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508558</guid><dc:creator><![CDATA[HarteWare]]></dc:creator><pubDate>Tue, 13 Sep 2016 18:05:40 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;? on Tue, 13 Sep 2016 18:06:49 GMT]]></title><description><![CDATA[<p>Die zweite Lösung finde ich auf jeden Fall besser.<br />
Dann könnte man die Threadfunktion evtl. auch als freie Funktion und nicht als Klasse implementieren, je nachdem, was du mit deinem Framework alles für Möglichkeiten hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508560</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Tue, 13 Sep 2016 18:06:49 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;? on Tue, 13 Sep 2016 18:27:56 GMT]]></title><description><![CDATA[<p>Aber in Funktionen kann man doch auch statische Variablen haben, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508563</guid><dc:creator><![CDATA[HarteWare]]></dc:creator><pubDate>Tue, 13 Sep 2016 18:27:56 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;? on Tue, 13 Sep 2016 18:39:07 GMT]]></title><description><![CDATA[<p>Nein, statische Variablen sind grundsätzlich keine gute Idee. Stell dir vor, du willst mal zwei &quot;Sets&quot; von den Threads laufen lassen, die an unterschiedlichen Daten arbeiten. Es lohnt sich nicht, großartig über sowas nachzudenken. Wenn du etwas nicht statisch/global machen kannst, dann machs auch nicht statisch oder global.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508566</guid><dc:creator><![CDATA[Mechanics]]></dc:creator><pubDate>Tue, 13 Sep 2016 18:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Shared Data in classes: static oder shared_ptr&amp;lt;&amp;gt;? on Tue, 13 Sep 2016 21:04:47 GMT]]></title><description><![CDATA[<p>OK, dann versuche ich mal an den beiden Verbesserungen, Auslagerung von Klasse in Funktionen und Ersetzen der (unnötig) statischen Sachen (durch eine geeignete Datenstruktur als Funktionsargument).</p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508569</guid><dc:creator><![CDATA[HarteWare]]></dc:creator><pubDate>Tue, 13 Sep 2016 21:04:47 GMT</pubDate></item></channel></rss>