<?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[Statische Memberfunktionsvariablen: Gängige Praxis oder nicht?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>da hier zur Zeit ziemlich über Coderichtlinen und solche Sachen diskutiert wird, wollte ich euch mal über eure Meinungen zu statischen Memberfunktionsvariablen fragen.</p>
<p>Angenommen ich habe einen zyklischen Callback der von einem Timer immer wieder aufgerufen wird und ich hab Code der in der Funktion nur einmal aufgerufen werden soll.</p>
<p>Dann könnte man ja generell folgendes machen.</p>
<pre><code class="language-cpp">void SomeClass::Callback()
{
   static bool firstCall = true;
   if(firstCall)
   {
     // mach was ...
     firstCall = false;
   }

   // mach zyklische Sachen ...
}
</code></pre>
<ul>
<li>Seht ihr in so einem Ansatz Probleme die mir gerade nicht auffallen?</li>
<li>Sollte man für so etwas Membervariablen nehmen, obwohl mich die Entscheidung nur in dieser Funktion interessiert?</li>
</ul>
<p>Danke fürs Antworten...</p>
<p>Greets<br />
Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288684/statische-memberfunktionsvariablen-gängige-praxis-oder-nicht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 19:41:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288684.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Jun 2011 07:38:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Statische Memberfunktionsvariablen: Gängige Praxis oder nicht? on Tue, 21 Jun 2011 09:06:33 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>da hier zur Zeit ziemlich über Coderichtlinen und solche Sachen diskutiert wird, wollte ich euch mal über eure Meinungen zu statischen Memberfunktionsvariablen fragen.</p>
<p>Angenommen ich habe einen zyklischen Callback der von einem Timer immer wieder aufgerufen wird und ich hab Code der in der Funktion nur einmal aufgerufen werden soll.</p>
<p>Dann könnte man ja generell folgendes machen.</p>
<pre><code class="language-cpp">void SomeClass::Callback()
{
   static bool firstCall = true;
   if(firstCall)
   {
     // mach was ...
     firstCall = false;
   }

   // mach zyklische Sachen ...
}
</code></pre>
<ul>
<li>Seht ihr in so einem Ansatz Probleme die mir gerade nicht auffallen?</li>
<li>Sollte man für so etwas Membervariablen nehmen, obwohl mich die Entscheidung nur in dieser Funktion interessiert?</li>
</ul>
<p>Danke fürs Antworten...</p>
<p>Greets<br />
Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081485</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Tue, 21 Jun 2011 09:06:33 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Memberfunktionsvariablen: Gängige Praxis oder nicht? on Tue, 21 Jun 2011 07:45:27 GMT]]></title><description><![CDATA[<p>1. Multi Threading kann zum Thema werden<br />
2. Die funktionslokale statische Variabe ist bei allen SomeClass Instanzen gemeinsam - ich hoffe, das ist das was benötigt wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081487</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 21 Jun 2011 07:45:27 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Memberfunktionsvariablen: Gängige Praxis oder nicht? on Tue, 21 Jun 2011 07:48:45 GMT]]></title><description><![CDATA[<blockquote>
<p>Sollte man für so etwas Membervariablen nehmen, obwohl mich die Entscheidung nur in dieser Funktion interessiert?</p>
</blockquote>
<p>Ganz einfach, Deine Beschraenkung auf &quot;nur einmal&quot; ausführen, trifft die auf eine Instanz, oder Global auf die Klasse zu ?</p>
<p>Bei Deiner Ausfuehrung iss das irgendwie gemischt, also weder Fisch noch Fleisch.</p>
<p>Also kann es von SomeClass mehrere Instanzen geben und diese &quot;initialisierung&quot; muss fuer jede Instanz laufen -&gt; Member, ganz klar</p>
<p>Soll es von SomeClass immer nur eine Instanz geben -&gt; auch member und die Instanzen absichern, das es immer nur eine gibt (Singleton). Dann wird Deine Funktion logisch auch nur einmal aufgerufen.</p>
<p>statische membervariablen hängen haeufig mit statischen memberfunktionen zusammen.</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081491</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Tue, 21 Jun 2011 07:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Memberfunktionsvariablen: Gängige Praxis oder nicht? on Tue, 21 Jun 2011 08:01:16 GMT]]></title><description><![CDATA[<p>Danke euch beiden für die Antworten.</p>
<p>SomeClass ist nur einmal instanziert und dass wird auch so bleiben. Dass heißt</p>
<p>theta schrieb:</p>
<blockquote>
<p>...<br />
2. Die funktionslokale statische Variabe ist bei allen SomeClass Instanzen gemeinsam - ich hoffe, das ist das was benötigt wird <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
</blockquote>
<p>trifft zu.</p>
<p>Die Absicherung für Multithreading hab ich im Beispielcode nicht eingebaut, das Thema ist mir aber durchaus bewusst.</p>
<p>RHBaum schrieb:</p>
<blockquote>
<p>...<br />
Dann wird Deine Funktion logisch auch nur einmal aufgerufen. ...</p>
</blockquote>
<p>Die Funktion selbst wird zyklisch aufgerufen, und dass soll/muss auch so bleiben, nur der eine Teil, darf nur einmal aufgerufen werden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081497</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Tue, 21 Jun 2011 08:01:16 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Memberfunktionsvariablen: Gängige Praxis oder nicht? on Tue, 21 Jun 2011 08:10:46 GMT]]></title><description><![CDATA[<p>Tobias Gerg schrieb:</p>
<blockquote>
<p>Dann könnte man ja generell folgendes machen.</p>
<pre><code class="language-cpp">void SomeClass::Callback()
{
   static bool firstCall = true;
   if(firstCall)
   {
     // mach was ...
     firstCall = false;
   }
   
   // mach zyklische Sachen ...
}
</code></pre>
</blockquote>
<p>Ich würds vermutlich eher so machen (Multithreading-Sicherheiten fehlen da noch):</p>
<pre><code class="language-cpp">bool CallbackFirstCall()
{
  // mach was ...
  return false;
}

void SomeClass::Callback()
{
   static bool firstCall = CallbackFirstCall;

   // mach zyklische Sachen ...
}
</code></pre>
<p>Das spart das if, das ja sowieso (fast) immer nicht zieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081501</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 21 Jun 2011 08:10:46 GMT</pubDate></item><item><title><![CDATA[Reply to Statische Memberfunktionsvariablen: Gängige Praxis oder nicht? on Tue, 21 Jun 2011 08:23:32 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>...</p>
<p>Ich würds vermutlich eher so machen (Multithreading-Sicherheiten fehlen da noch):</p>
<pre><code class="language-cpp">bool CallbackFirstCall()
{
  // mach was ...
  return false;
}

void SomeClass::Callback()
{
   static bool firstCall = CallbackFirstCall;
   
   // mach zyklische Sachen ...
}
</code></pre>
<p>Das spart das if, das ja sowieso (fast) immer nicht zieht.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Danke für den Tipp pumuckl, das ist eine schöne Idee, die mir gefällt.. <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>Greets<br />
Tobi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2081505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2081505</guid><dc:creator><![CDATA[Tobias Gerg]]></dc:creator><pubDate>Tue, 21 Jun 2011 08:23:32 GMT</pubDate></item></channel></rss>