<?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[Header + 2 cpp Dateien, wie verhält sich &amp;quot;static foo&amp;quot; in der Header datei?]]></title><description><![CDATA[<p>Folgende Situation:</p>
<p>Header:</p>
<pre><code class="language-cpp">#ifndef FOO
#define FOO

static std::string foo;
#endif
</code></pre>
<p>erste cpp included den header und setzt foo (bestätigt). Danach wird die zweite cpp aufgerufen (reihenfolge bestätigt) und diese will foo auslesen, aber foo enthält nicht den inhalt, den die erste cpp datei gesetzt hat.</p>
<p>Ist das so korrekt? Ich ging davon aus, dass ne static variable in dem globalen scope ziemlich langlebig ist</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248640/header-2-cpp-dateien-wie-verhält-sich-quot-static-foo-quot-in-der-header-datei</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 22:00:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248640.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Aug 2009 12:40:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Header + 2 cpp Dateien, wie verhält sich &amp;quot;static foo&amp;quot; in der Header datei? on Thu, 27 Aug 2009 12:40:57 GMT]]></title><description><![CDATA[<p>Folgende Situation:</p>
<p>Header:</p>
<pre><code class="language-cpp">#ifndef FOO
#define FOO

static std::string foo;
#endif
</code></pre>
<p>erste cpp included den header und setzt foo (bestätigt). Danach wird die zweite cpp aufgerufen (reihenfolge bestätigt) und diese will foo auslesen, aber foo enthält nicht den inhalt, den die erste cpp datei gesetzt hat.</p>
<p>Ist das so korrekt? Ich ging davon aus, dass ne static variable in dem globalen scope ziemlich langlebig ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767638</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Thu, 27 Aug 2009 12:40:57 GMT</pubDate></item><item><title><![CDATA[Reply to Header + 2 cpp Dateien, wie verhält sich &amp;quot;static foo&amp;quot; in der Header datei? on Thu, 27 Aug 2009 12:47:41 GMT]]></title><description><![CDATA[<p>Seikilos schrieb:</p>
<blockquote>
<p>Ist das so korrekt? Ich ging davon aus, dass ne static variable in dem globalen scope ziemlich langlebig ist</p>
</blockquote>
<p>Ja, und vor allem in jeder Übersetzungseinheit eine eigene. Du kannst in der ersten ÜE nicht auf die statischen Variablen der zweiten ÜE zugreifen. Deshalb wird in der zweiten CPP nie ankommen, was du in der ersten in foo schreibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767645</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 27 Aug 2009 12:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Header + 2 cpp Dateien, wie verhält sich &amp;quot;static foo&amp;quot; in der Header datei? on Thu, 27 Aug 2009 12:49:54 GMT]]></title><description><![CDATA[<p>Lösung: <code>extern std::string foo;</code> im Header, <code>std::string foo;</code> in der Implementierungsdatei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767647</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Thu, 27 Aug 2009 12:49:54 GMT</pubDate></item><item><title><![CDATA[Reply to Header + 2 cpp Dateien, wie verhält sich &amp;quot;static foo&amp;quot; in der Header datei? on Thu, 27 Aug 2009 13:10:35 GMT]]></title><description><![CDATA[<p>Oder eine andere Möglichkeit, die auch Übersetzungseinheitübergreifend funktioniert:</p>
<pre><code class="language-cpp">static string&amp; foo(){static string intern=&quot;&quot;; return intern;}
</code></pre>
<p>Vorteil: Keinerlei Sorgen mehr, ob, wann und wo die statische Variable definiert wird.<br />
Nachteil: Ungewöhnliche Benutzung, da du immer foo() schreiben musst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767661</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 27 Aug 2009 13:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to Header + 2 cpp Dateien, wie verhält sich &amp;quot;static foo&amp;quot; in der Header datei? on Thu, 27 Aug 2009 13:25:46 GMT]]></title><description><![CDATA[<p>Das mit der Methode funktiniert bei mir nicht.<br />
Ich hab mal die variable in ein</p>
<pre><code class="language-cpp">#include &lt;string&gt;
class GlobalData
{
public:
   static std::string mapPath;
};
</code></pre>
<p>Gepackt, bekomme aber in den cpps wo das genutzt wird einen Linker fehler, das basic_traits nicht aufgelöst ist (LNK2001)<br />
Warum ist es nicht aufgelöst? Muss es noch irgendwo initialisiert werden?</p>
<p>Edit: Schon gut, hab mir die Frage selber beantwortet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1767670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1767670</guid><dc:creator><![CDATA[Seikilos]]></dc:creator><pubDate>Thu, 27 Aug 2009 13:25:46 GMT</pubDate></item></channel></rss>