<?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[Linkerfehler bei statischer Elementfunktion]]></title><description><![CDATA[<p>Hi,</p>
<p>ich komme einfach nicht darauf was ich falsch mache <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Ich bekomme folgende Fehlermeldung</p>
<pre><code>undefined reference to `Klasse::statisch' 
collect2: ld returned 1 exit status
</code></pre>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Klasse
{
public:
    Klasse(int d)
        : dynamisch(d)
    {
    }

    int get_dynamisch() const
    {
        return dynamisch;
    }

    static int get_statisch()
    {
        return statisch;
    }

private:
    static int statisch;
    int dynamisch;
};

int main()
{
    std::cout &lt;&lt; &quot;statisch=&quot; &lt;&lt; Klasse::get_statisch() &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/272483/linkerfehler-bei-statischer-elementfunktion</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 21:18:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272483.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Aug 2010 11:00:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linkerfehler bei statischer Elementfunktion on Wed, 18 Aug 2010 11:00:44 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich komme einfach nicht darauf was ich falsch mache <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Ich bekomme folgende Fehlermeldung</p>
<pre><code>undefined reference to `Klasse::statisch' 
collect2: ld returned 1 exit status
</code></pre>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Klasse
{
public:
    Klasse(int d)
        : dynamisch(d)
    {
    }

    int get_dynamisch() const
    {
        return dynamisch;
    }

    static int get_statisch()
    {
        return statisch;
    }

private:
    static int statisch;
    int dynamisch;
};

int main()
{
    std::cout &lt;&lt; &quot;statisch=&quot; &lt;&lt; Klasse::get_statisch() &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1941448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941448</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Wed, 18 Aug 2010 11:00:44 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler bei statischer Elementfunktion on Wed, 18 Aug 2010 11:07:19 GMT]]></title><description><![CDATA[<p>Dir fehlt ein</p>
<pre><code class="language-cpp">int Klasse::statisch = 0;
</code></pre>
<p>außerhalb der Klassendeklaration.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941455</guid><dc:creator><![CDATA[Biolunar]]></dc:creator><pubDate>Wed, 18 Aug 2010 11:07:19 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler bei statischer Elementfunktion on Wed, 18 Aug 2010 11:26:29 GMT]]></title><description><![CDATA[<p>Danke das war es. Wenn das Element eh definiert werden muss warum ist das nicht gleich innerhalb der Klassendefinition möglich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941471</guid><dc:creator><![CDATA[cppfrager]]></dc:creator><pubDate>Wed, 18 Aug 2010 11:26:29 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler bei statischer Elementfunktion on Wed, 18 Aug 2010 11:50:03 GMT]]></title><description><![CDATA[<p>Für konstante, statische, integrale Typen ist es erlaubt. Ich glaube es geht nicht, weil sonst die Variable bei jedem Konstruktor-Aufruf zurückgesetzt werden würde.(Deswegen darf man statische Variablen auch nicht im Konstruktor initialisieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941487</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Wed, 18 Aug 2010 11:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to Linkerfehler bei statischer Elementfunktion on Wed, 18 Aug 2010 13:08:12 GMT]]></title><description><![CDATA[<p>cppfrager schrieb:</p>
<blockquote>
<p>Danke das war es. Wenn das Element eh definiert werden muss warum ist das nicht gleich innerhalb der Klassendefinition möglich?</p>
</blockquote>
<p>Weil du irgendwo ein Stück Speicher für die Variable brauchst. Wann und wo sollte der Compiler den Speicher anlegen, wenn es in der Klassendefinition steht? Es darf ja nicht in jeder aus einem .cpp generierten Objektdatei ein eigener Bereich angelegt werden. Deshalb muss man in einer .cpp sagen: hier hin.</p>
<p>Ein Fehler der gerne von Anfängern gemacht wird: die Definition auch in den Header schreiben. Das führt dann zu dem oben beschriebenen Effekt und der Linker beschwert sich über ein mehrfach definiertes Symbol.</p>
<p>Lars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941543</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 18 Aug 2010 13:08:12 GMT</pubDate></item></channel></rss>