<?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[linker error bei template klasse]]></title><description><![CDATA[<p>Heho, kriege einen Linkerfehler bei meiner Templateklasse(ist eine Liste).<br />
Der Fehler lautet:<br />
&quot; [Linker error] undefined reference to <code>list&lt;int&gt;::list(int)' &quot; &quot; \[Linker error\] undefined reference to</code>list&lt;int&gt;::~list()' &quot;<br />
&quot; [Linker error] undefined reference to `list&lt;int&gt;::~list()' &quot;</p>
<p>Hier der Code(bzw. die deklaration):</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;

template &lt;class T&gt;
class list
{

      private:
      static int count;
      T pos; 
      list* next;

      public:
      list(T value = 0)
      :pos(value)
      {
       count++;          
      }
      ~list()
      {
             if(next != NULL)
             delete next;
      }       
      void setT(T value);
      T getT(void);
      int getcount(void);
      void add(T value);
      void setnext(list* nextitem);
      list* getnext(void)
      {
            return next;
      }
};
</code></pre>
<pre><code class="language-cpp">int main(int argc, char *argv[])
{
    list&lt;int&gt; test(10);

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Hab den Konstruktor und den Dekonstruktor inline definiert, da das als Fehlerlösung angeboten wurde auf einer Seite, scheint aber hier nicht zufunktionieren.<br />
Konstruktor und Dekonstruktor werden NIRGENDSWO anders definiert(hab nichts vergessen).<br />
Weiß jemand Rat? Vielen Dank <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/topic/264920/linker-error-bei-template-klasse</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 10:34:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264920.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Apr 2010 22:44:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to linker error bei template klasse on Wed, 14 Apr 2010 22:44:19 GMT]]></title><description><![CDATA[<p>Heho, kriege einen Linkerfehler bei meiner Templateklasse(ist eine Liste).<br />
Der Fehler lautet:<br />
&quot; [Linker error] undefined reference to <code>list&lt;int&gt;::list(int)' &quot; &quot; \[Linker error\] undefined reference to</code>list&lt;int&gt;::~list()' &quot;<br />
&quot; [Linker error] undefined reference to `list&lt;int&gt;::~list()' &quot;</p>
<p>Hier der Code(bzw. die deklaration):</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;

template &lt;class T&gt;
class list
{

      private:
      static int count;
      T pos; 
      list* next;

      public:
      list(T value = 0)
      :pos(value)
      {
       count++;          
      }
      ~list()
      {
             if(next != NULL)
             delete next;
      }       
      void setT(T value);
      T getT(void);
      int getcount(void);
      void add(T value);
      void setnext(list* nextitem);
      list* getnext(void)
      {
            return next;
      }
};
</code></pre>
<pre><code class="language-cpp">int main(int argc, char *argv[])
{
    list&lt;int&gt; test(10);

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Hab den Konstruktor und den Dekonstruktor inline definiert, da das als Fehlerlösung angeboten wurde auf einer Seite, scheint aber hier nicht zufunktionieren.<br />
Konstruktor und Dekonstruktor werden NIRGENDSWO anders definiert(hab nichts vergessen).<br />
Weiß jemand Rat? Vielen Dank <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/1883092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883092</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Wed, 14 Apr 2010 22:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Wed, 14 Apr 2010 23:19:51 GMT]]></title><description><![CDATA[<p>Du hast das File schon includede, oder?</p>
<p>Und zweitens: Warum ist count static?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883100</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 14 Apr 2010 23:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Wed, 14 Apr 2010 23:36:51 GMT]]></title><description><![CDATA[<p>damit ich die anzahl an listenelementen habe<br />
included ist sie^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883102</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Wed, 14 Apr 2010 23:36:51 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 05:09:35 GMT]]></title><description><![CDATA[<p>Warum benutzt du nicht std::list?</p>
<p>Und wofür bindest du cstdlib ein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883122</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Thu, 15 Apr 2010 05:09:35 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 09:34:59 GMT]]></title><description><![CDATA[<p>Löst das mein Problem?</p>
<p>Die Bibliothek muss ich eigentlich nur für das &quot;NULL&quot; Makro inkludieren. Scheint ne Editorspezifische Sache zu sein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883210</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Thu, 15 Apr 2010 09:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 09:57:08 GMT]]></title><description><![CDATA[<p>Hi, die Fehlermeldungen sind komisch, da die Kon- und Destruktoren als einziges richtig sind.<br />
Die Definition muss bei einem Template mit in den Header, bzw. im Header inkludiert werden, bzw. EXPORT verwenden sofern das dein Kompiler kann.<br />
Das statische count muss auch definiert werden.<br />
Diese Kurzform lässt sich kompilieren:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
class list
{
private:
   static int count;
   T pos;
   list* next;

public:
	list(T value = 0) :pos(value)
	{
		count++;          
	}
	~list()
	{
		if(next != NULL)
			delete next;
	}
};
template &lt;typename T&gt; T list&lt;T&gt;::count;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1883227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883227</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 15 Apr 2010 09:57:08 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 10:06:53 GMT]]></title><description><![CDATA[<p>Danke schonmal, aber ich habe die sachen in einer cpp datei definiert, die hier:</p>
<p>#include &quot;list.h&quot;</p>
<p>template &lt;class T&gt; int list&lt;T&gt;::count = 0;</p>
<pre><code class="language-cpp">template &lt;class T&gt; void list&lt;T&gt;::setT(T value)
       {
                pos = value;
       }

      template &lt;class T&gt; T list&lt;T&gt;::getT(void)
      {
               return pos;
      }

      template &lt;class T&gt; int list&lt;T&gt;::getcount(void)
      {
               return count;
      }

      template &lt;class T&gt; void list&lt;T&gt;::add(T value)
      {
              this -&gt; next = new list(value);
      } 

      template &lt;class T&gt; void list&lt;T&gt;::setnext(list* nextitem)
      {
               this -&gt; next = nextitem;
      }
</code></pre>
<p>geht das so nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883234</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Thu, 15 Apr 2010 10:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 10:11:33 GMT]]></title><description><![CDATA[<p>Nee, das geht nicht. Warum kannst du <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html" rel="nofollow">hier</a> nachlesen (bei den Links am Ende).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883237</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 15 Apr 2010 10:11:33 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 10:21:58 GMT]]></title><description><![CDATA[<p>vielen vielen Dank, ich probiers dann mal so</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883242</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Thu, 15 Apr 2010 10:21:58 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 10:45:37 GMT]]></title><description><![CDATA[<p>Hallo, ich habe es jetzt wie folgt geschrieben</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;

template &lt;class T&gt;
class list
{

      private:
      static int count;
      T pos; 
      list* next;

      public:
      list(T value = 0)
      :pos(value)
      {
       this -&gt; next = NULL;
       count++;          
      }
      ~list()
      {
             if(next != NULL)
             delete next;
      }       
      void setT(T value)
      {
           pos = value;
      }

      T getT(void)
      {
               return pos;
      }
      int getcount(void)
      {
          return count;
      }

      void add(T value)
      {
           next = new list(value);
      }

      void setnext(list* nextitem)
      {
           next = nextitem;
      }
      list* getnext(void)
      {
            return next;
      }
};
template &lt;typename T&gt; T list&lt;T&gt;::count = 0;
</code></pre>
<p>Kriege aber immernoch den gleichen Fehler?! Ich benutze Dev C++ liegts vielleicht daran? Hab schon gehört, dass der schlecht sein soll(bzw. veraltet)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883255</guid><dc:creator><![CDATA[Kingcools2]]></dc:creator><pubDate>Thu, 15 Apr 2010 10:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 10:47:35 GMT]]></title><description><![CDATA[<p>Kingcools2 schrieb:</p>
<blockquote>
<p>Kriege aber immernoch den gleichen Fehler?! Ich benutze Dev C++ liegts vielleicht daran? Hab schon gehört, dass der schlecht sein soll(bzw. veraltet)</p>
</blockquote>
<p>Möglicherweise liegts daran, ja. Gibts einen speziellen Grund dass du den benutzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883258</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 15 Apr 2010 10:47:35 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 10:50:06 GMT]]></title><description><![CDATA[<p>Eigentlich nur wegen seiner Schlichtheit und wegen der schnicken Importfunktion(erspart einem das Einrichten für diverse Bibliotheken z.B: OpenGl oder Allegro). Will halt programmieren und nicht Jahre erstmal den Editor verstehen. Wäre jetzt aber kein Beinbruch nen anderen zu nehmen.<br />
Ich probier das dann mal, wenns nicht geht schreib ich heute Nacht nochmal rein^^<br />
Danke sehr <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/1883260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883260</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Thu, 15 Apr 2010 10:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 10:51:37 GMT]]></title><description><![CDATA[<p>Er kann ja ruhig Dev C++ nutzen, solange er einen vernünftigen Compiler benutzt. Allerdings ist die MingW Version, die bei Dev C++ (auch bei Code::Blocks) mitgeliefert wird, hoffnungslos veraltet und sollte nicht mehr benutzt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883263</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Thu, 15 Apr 2010 10:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Thu, 15 Apr 2010 12:28:15 GMT]]></title><description><![CDATA[<p>Deshalb das neuere wxDev-C++ nutzen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1883318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883318</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Thu, 15 Apr 2010 12:28:15 GMT</pubDate></item><item><title><![CDATA[Reply to linker error bei template klasse on Fri, 16 Apr 2010 09:49:47 GMT]]></title><description><![CDATA[<p>Ok, hab jetzt den wxdev ausprobiert, und nun kompiliert der Code, der Compiler war also veraltet, danke schön, kann zu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1883742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1883742</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Fri, 16 Apr 2010 09:49:47 GMT</pubDate></item></channel></rss>