<?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[Frage zu Klassentemplates]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zu der korrekten Verwedung von Klassentemplates.<br />
Dieses Klassentemplate ist definiert:</p>
<pre><code class="language-cpp">#include &lt;Classes.hpp&gt;

template &lt;class T&gt; class Liste  // Vorausdeklaration
{
   public:
      ~Liste() { delete liste; };
      Liste() { liste = new TList(); };
      void elementHinzufuegen(T* element) { liste-&gt;Add(element); };
      void elementLoeschen(T* element) { liste-&gt;Delete(element); };
      void elementLoeschen(int pos) { liste-&gt;Remove(pos); };
      T* elementHolen(int pos);

   private:
      TList* liste;
};
</code></pre>
<p>Die Methode elementHolen will ich in der cpp-Datei ausformulieren.</p>
<p>Mein Versuch dazu:</p>
<pre><code class="language-cpp">template&lt;class T&gt; T* Liste&lt;class T&gt;::elementHolen(int pos)
{
   for (int i=0; i&lt;liste-&gt;Count; i++)
   {
      // ...
   }
   return NULL;
}
</code></pre>
<p>...scheitert mit der Fehlermeldung</p>
<pre><code class="language-cpp">Liste&lt;T&gt;::elementHolen(int) ist kein Element von Liste&lt;T&gt;.
</code></pre>
<p>Kann mir das bitte jemand erklären?<br />
Meine Recherchen im Internet bringen mich nicht weiter, da ich denke, Tutorials gefunden zu haben, die genau jenes tun.... Oder aber ich stehe gerade ziemlich fies auf dem Schlauch.</p>
<p>Ich danke.</p>
<p>Oliver.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183277/frage-zu-klassentemplates</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 02:09:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183277.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 03 Jun 2007 15:45:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Klassentemplates on Sun, 03 Jun 2007 15:45:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zu der korrekten Verwedung von Klassentemplates.<br />
Dieses Klassentemplate ist definiert:</p>
<pre><code class="language-cpp">#include &lt;Classes.hpp&gt;

template &lt;class T&gt; class Liste  // Vorausdeklaration
{
   public:
      ~Liste() { delete liste; };
      Liste() { liste = new TList(); };
      void elementHinzufuegen(T* element) { liste-&gt;Add(element); };
      void elementLoeschen(T* element) { liste-&gt;Delete(element); };
      void elementLoeschen(int pos) { liste-&gt;Remove(pos); };
      T* elementHolen(int pos);

   private:
      TList* liste;
};
</code></pre>
<p>Die Methode elementHolen will ich in der cpp-Datei ausformulieren.</p>
<p>Mein Versuch dazu:</p>
<pre><code class="language-cpp">template&lt;class T&gt; T* Liste&lt;class T&gt;::elementHolen(int pos)
{
   for (int i=0; i&lt;liste-&gt;Count; i++)
   {
      // ...
   }
   return NULL;
}
</code></pre>
<p>...scheitert mit der Fehlermeldung</p>
<pre><code class="language-cpp">Liste&lt;T&gt;::elementHolen(int) ist kein Element von Liste&lt;T&gt;.
</code></pre>
<p>Kann mir das bitte jemand erklären?<br />
Meine Recherchen im Internet bringen mich nicht weiter, da ich denke, Tutorials gefunden zu haben, die genau jenes tun.... Oder aber ich stehe gerade ziemlich fies auf dem Schlauch.</p>
<p>Ich danke.</p>
<p>Oliver.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1297851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297851</guid><dc:creator><![CDATA[Oliver Kohl]]></dc:creator><pubDate>Sun, 03 Jun 2007 15:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassentemplates on Sun, 03 Jun 2007 16:51:38 GMT]]></title><description><![CDATA[<p>Mir war nicht bewusst, dass man die Definition von Methoden bei Templates nicht in der cpp-Datei machen darf.</p>
<p>Das ganze in den Header (sieht irgendwie ungewöhnlich aus) verschoben und es funktioniert.</p>
<p>Für die, die diese Probleme auch hatten/haben/irgendwann mal haben werden, hier der funktionierende Code:</p>
<p>Header:</p>
<pre><code class="language-cpp">template &lt;class T&gt; class Liste  // Vorausdeklaration
{
   public:
      ~Liste() { delete liste;};
      Liste() { liste = new TList(); };
      void elementHinzufuegen(T* element) { liste-&gt;Add(element); };
      void elementLoeschen(T* element) { liste-&gt;Delete(element); };
      void elementLoeschen(int pos) { liste-&gt;Remove(pos); };
      T* elementHolen(int pos);

   private:
      TList* liste;
};

template&lt;class T&gt; T* Liste&lt;T&gt;::elementHolen(int pos)
{
   // Code
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1297904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1297904</guid><dc:creator><![CDATA[Oliver Kohl]]></dc:creator><pubDate>Sun, 03 Jun 2007 16:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Klassentemplates on Mon, 04 Jun 2007 08:39:49 GMT]]></title><description><![CDATA[<p>Nur als Ergänzung noch der Link zu einen passenden Beitrag aus der <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html" rel="nofollow">C++ FAQ</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298234</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 04 Jun 2007 08:39:49 GMT</pubDate></item></channel></rss>