<?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[template klassen-methode implementierung]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine template klasse, die von einem parameter abhängt.</p>
<pre><code class="language-cpp">namespace ns{
template&lt;typename T&gt;
class a
{
  void methode_a();

  public:

    template&lt;typename T&gt; void methode_b( blub&lt;T&gt; )
    {
      ...
    }
};
}
</code></pre>
<p>Jetzt wollte ich die <code>methode_a</code> außerhalb der Klasse implementieren, sie ist nicht vom Templargument abhängig. Wie lautet dazu die Signatur?</p>
<pre><code class="language-cpp">template&lt;typename T&gt; void ns::a::methode_a()
{
 // implementierung
}
</code></pre>
<p>Das klappt irgendwie nicht. Der Fehler ist &quot;unable to match function definition to an existing declaration.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310802/template-klassen-methode-implementierung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 06:22:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310802.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 20 Nov 2012 09:12:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to template klassen-methode implementierung on Tue, 20 Nov 2012 09:12:30 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe eine template klasse, die von einem parameter abhängt.</p>
<pre><code class="language-cpp">namespace ns{
template&lt;typename T&gt;
class a
{
  void methode_a();

  public:

    template&lt;typename T&gt; void methode_b( blub&lt;T&gt; )
    {
      ...
    }
};
}
</code></pre>
<p>Jetzt wollte ich die <code>methode_a</code> außerhalb der Klasse implementieren, sie ist nicht vom Templargument abhängig. Wie lautet dazu die Signatur?</p>
<pre><code class="language-cpp">template&lt;typename T&gt; void ns::a::methode_a()
{
 // implementierung
}
</code></pre>
<p>Das klappt irgendwie nicht. Der Fehler ist &quot;unable to match function definition to an existing declaration.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272615</guid><dc:creator><![CDATA[aasdsad]]></dc:creator><pubDate>Tue, 20 Nov 2012 09:12:30 GMT</pubDate></item><item><title><![CDATA[Reply to template klassen-methode implementierung on Tue, 20 Nov 2012 09:18:23 GMT]]></title><description><![CDATA[<p>Wenn ich das <code>template&lt;typename T&gt;</code> weglasse, bekomme ich: &quot;Error: argument list for class template 'ns::a' is missing&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272619</guid><dc:creator><![CDATA[aasdsad]]></dc:creator><pubDate>Tue, 20 Nov 2012 09:18:23 GMT</pubDate></item><item><title><![CDATA[Reply to template klassen-methode implementierung on Tue, 20 Nov 2012 09:20:30 GMT]]></title><description><![CDATA[<pre><code>template&lt;typename T&gt; void ns::a&lt;T&gt;::methode_a(){}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2272620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272620</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 20 Nov 2012 09:20:30 GMT</pubDate></item><item><title><![CDATA[Reply to template klassen-methode implementierung on Tue, 20 Nov 2012 09:23:01 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<pre><code>template&lt;typename T&gt; void ns::a&lt;T&gt;::methode_a(){}
</code></pre>
</blockquote>
<p>Das würde bedeuten, dass ich es nicht in der .cpp Datei implementieren kann... obwohl ich keinen template Parameter brauche <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272623</guid><dc:creator><![CDATA[aasdsad]]></dc:creator><pubDate>Tue, 20 Nov 2012 09:23:01 GMT</pubDate></item><item><title><![CDATA[Reply to template klassen-methode implementierung on Tue, 20 Nov 2012 09:52:56 GMT]]></title><description><![CDATA[<p>aasdsad schrieb:</p>
<blockquote>
<p>Das würde bedeuten, dass ich es nicht in der .cpp Datei implementieren kann... obwohl ich keinen template Parameter brauche <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="😞"
    /></p>
</blockquote>
<p>Und woher soll der Compiler sonst wissen, dass dies eine allgemeine Methode für alle T ist und nicht eine Spezialisierung für einen bestimmten Typen?</p>
<p>Es gibt Mittel und Wege, dass du die Implementierung auch in einer cpp-Datei vornehmen kannst. Welcher davon geeignet ist, kommt auf das genaue Modell an. Jedoch muss ich erst fragen, wieso dich das überhaupt stört, denn eigentlich ist das voll in Ordnung so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272638</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 20 Nov 2012 09:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to template klassen-methode implementierung on Tue, 20 Nov 2012 10:08:55 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>aasdsad schrieb:</p>
<blockquote>
<p>Das würde bedeuten, dass ich es nicht in der .cpp Datei implementieren kann... obwohl ich keinen template Parameter brauche <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="😞"
    /></p>
</blockquote>
<p>Und woher soll der Compiler sonst wissen, dass dies eine allgemeine Methode für alle T ist und nicht eine Spezialisierung für einen bestimmten Typen?</p>
</blockquote>
<p>Es stört nicht wirklich, hatte es bisher so gehalten dass template abhängige sachen immer in include/impl/<em>.hpp implementiert wurden während andere sachen in src/</em>.cpp waren. Bin aber nicht wirklich vertraut mit templates.</p>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Es gibt Mittel und Wege, dass du die Implementierung auch in einer cpp-Datei vornehmen kannst. Welcher davon geeignet ist, kommt auf das genaue Modell an. Jedoch muss ich erst fragen, wieso dich das überhaupt stört, denn eigentlich ist das voll in Ordnung so.</p>
</blockquote>
<p>Könntest du mir ein paar dieser Quellen oder die dazu passenden Stichwörter/Pattern nennen? Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272652</guid><dc:creator><![CDATA[aasdsad]]></dc:creator><pubDate>Tue, 20 Nov 2012 10:08:55 GMT</pubDate></item><item><title><![CDATA[Reply to template klassen-methode implementierung on Tue, 20 Nov 2012 10:13:15 GMT]]></title><description><![CDATA[<p>aasdsad schrieb:</p>
<blockquote>
<p>Könntest du mir ein paar dieser Quellen oder die dazu passenden Stichwörter/Pattern nennen? Danke!</p>
</blockquote>
<p>Vererbung, Pimpl, ähnliches. Nichts geheimnisvolles, bloß die üblichen Sprachmittel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272654</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 20 Nov 2012 10:13:15 GMT</pubDate></item></channel></rss>