<?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[Lokale Statische Variable in Methode?]]></title><description><![CDATA[<p>Hi</p>
<p>mich interessiert folgendes:</p>
<pre><code class="language-cpp">class test {
public:
   void tester() {
        static bool testb = false;

        // ...
    }
}
</code></pre>
<p>wird die Variable testb nun für jede Instanz von test neu alloziert oder gilt über alle Instanzen der Klasse test testb als eine Variable.</p>
<p>In VC++ funktioniert es anscheinend wie ichs mir dachte (Pro Instanz alloziert) aber kann man darauf bauen? Oder sollte ich generell so vorgehen:</p>
<pre><code class="language-cpp">class test {
private:
  bool testb;

  test() {
     testb = false
  };
public:
   void tester() {      
        // ...
    };
}
</code></pre>
<p>Hab leider nix dazu in meiner C++ Referenz gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183663/lokale-statische-variable-in-methode</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 09:33:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183663.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Jun 2007 10:11:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 10:11:01 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>mich interessiert folgendes:</p>
<pre><code class="language-cpp">class test {
public:
   void tester() {
        static bool testb = false;

        // ...
    }
}
</code></pre>
<p>wird die Variable testb nun für jede Instanz von test neu alloziert oder gilt über alle Instanzen der Klasse test testb als eine Variable.</p>
<p>In VC++ funktioniert es anscheinend wie ichs mir dachte (Pro Instanz alloziert) aber kann man darauf bauen? Oder sollte ich generell so vorgehen:</p>
<pre><code class="language-cpp">class test {
private:
  bool testb;

  test() {
     testb = false
  };
public:
   void tester() {      
        // ...
    };
}
</code></pre>
<p>Hab leider nix dazu in meiner C++ Referenz gefunden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300590</guid><dc:creator><![CDATA[DaRpH]]></dc:creator><pubDate>Thu, 07 Jun 2007 10:11:01 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 10:41:38 GMT]]></title><description><![CDATA[<p>Huhu !<br />
Die zweite Methode ist zu empfehlen.<br />
Ja und jede Instanz hat ihre eigene testb Variable.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300596</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Thu, 07 Jun 2007 10:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 10:35:57 GMT]]></title><description><![CDATA[<p>DaRpH schrieb:</p>
<blockquote>
<p>Hi</p>
<p>mich interessiert folgendes:</p>
<pre><code class="language-cpp">class test {
public:
   void tester() {
        static bool testb = false;
        
        // ...
    }
}
</code></pre>
<p>wird die Variable testb nun für jede Instanz von test neu alloziert oder gilt über alle Instanzen der Klasse test testb als eine Variable.</p>
<p>In VC++ funktioniert es anscheinend wie ichs mir dachte (Pro Instanz alloziert) aber kann man darauf bauen? Oder sollte ich generell so vorgehen:</p>
<pre><code class="language-cpp">class test {
private:
  bool testb;

  test() {
     testb = false
  };
public:
   void tester() {      
        // ...
    };
}
</code></pre>
<p>Hab leider nix dazu in meiner C++ Referenz gefunden.</p>
</blockquote>
<p>Hi, beides ist ein großer Unterschied. Es kommt darauf an was du genau machen willst ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300617</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 Jun 2007 10:35:57 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 11:16:38 GMT]]></title><description><![CDATA[<p>ich will mir merken das ein timeout in der ner read funktion aufgetreten ist (diese wird im takt aufgerufen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300642</guid><dc:creator><![CDATA[DaRpH]]></dc:creator><pubDate>Thu, 07 Jun 2007 11:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 11:25:17 GMT]]></title><description><![CDATA[<p>testb ist ja static, gar nicht gesehen...<br />
naja ... ich denke mal, das in beiden Fällen das Objekt von der Klasse test<br />
existieren muss.</p>
<p>Nunja, im ersten Fall bräuchtest du wohl noch einen Übergabeparameter für tester().<br />
Und im zweiten eine set_testb Methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300647</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Thu, 07 Jun 2007 11:25:17 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 11:33:13 GMT]]></title><description><![CDATA[<p>Was fürn Müll ...</p>
<pre><code class="language-cpp">class test {
public:
   void test_it() 
   {
        static bool failed = false;
        // ...
    }
}
</code></pre>
<p>so ... und willst du jetzt dir ausgeben lassen können ob failed wahr ist? dann wäre static wohl ein eher schlechter Ansatz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300658</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 07 Jun 2007 11:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 11:54:21 GMT]]></title><description><![CDATA[<p>Statische Variablen in nichtstatischen Memberfunktionen sollten für alle Instanzen gelten und nicht in jeder neuen Instanz neu initialisiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300677</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 07 Jun 2007 11:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 14:37:28 GMT]]></title><description><![CDATA[<p>Hm also irgendwie bringt das auch keine Klärung &quot;sollte&quot;, &quot;könnte&quot; etc soweit war ich auch schon.</p>
<p>Es geht doch im Prinzip darum das ich die bool Variable nur in der Funktion benötige (da sie von niemand anderem genutzt wird). Daher währe sie meiner Meinung nach in der Klasse falsch untergebracht.</p>
<p>Nun will ich aber sichergehen das pro Instanz der Klasse die Variable neu alloziert wird. (dH pro Klasse eine tester() Funktion mit jeweils einem eigenem Speicherbereich für die lokale Variable)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300783</guid><dc:creator><![CDATA[DaRpH]]></dc:creator><pubDate>Thu, 07 Jun 2007 14:37:28 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 14:49:59 GMT]]></title><description><![CDATA[<p>Nur mal überlegen.<br />
Eine statische Variable in einer Funktion gibt es nur einmal und wird beim ersten Aufruf der Funktion initialisiert.<br />
Eine Memberfunktion ist auch nur eine Funktion. Sie ist im Scope der Klasse gültig. Sie wird aber nicht für jede Instanz neu erzeugt.<br />
Ergo müssen hier Memberfunktionen wie freie Funktionen behandelt werden und somit gibt es die statische Variable wie gehabt nur einmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300792</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 07 Jun 2007 14:49:59 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 14:50:34 GMT]]></title><description><![CDATA[<p>Einfachste Lösung: Probier's aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Zur Erklärung: Statische Variablen gelten <strong>pro Funktion</strong> (bzw. pro Methode), das heißt daß auch alle deine Objekte mit der physisch selben Variablen rechnen müssen. Wenn du einen Wert pro Klasseninstanz brauchst, mußt du den in der Klasse anlegen.</p>
<p>PS: Natürlich kannst du auch folgende Alternative nehmen, aber ob die besser aussieht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">void MyClass::test()
{
  static map&lt;MyClass*,bool&gt; failed_data;
  bool failed = failed_data[this];
  ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1300793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300793</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 07 Jun 2007 14:50:34 GMT</pubDate></item><item><title><![CDATA[Reply to Lokale Statische Variable in Methode? on Thu, 07 Jun 2007 15:12:06 GMT]]></title><description><![CDATA[<p>Ah danke das ist doch mal eine klare Aussage <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Mir kams halt so vor als obs in meinem Testprogramm so funktioniert. Anscheinend glücklicher Zufall...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300810</guid><dc:creator><![CDATA[DaRpH]]></dc:creator><pubDate>Thu, 07 Jun 2007 15:12:06 GMT</pubDate></item></channel></rss>