<?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[[SOLVED] Template Klassen]]></title><description><![CDATA[<p>Hey</p>
<p>habe ich das richtig verstanden, dass man bei Template Klassen die Dateien für die Definition und Deklaration nicht nach dem üblichen .h und .cpp trennen kann, sondern alles in eine Datei gehört? Und die Methoden nach Möglichkeit als inline definiert werden sollten?</p>
<p>Danke im voraus</p>
<p>Nerva</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327140/solved-template-klassen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 20:23:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327140.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Jul 2014 08:39:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [SOLVED] Template Klassen on Fri, 25 Jul 2014 12:03:25 GMT]]></title><description><![CDATA[<p>Hey</p>
<p>habe ich das richtig verstanden, dass man bei Template Klassen die Dateien für die Definition und Deklaration nicht nach dem üblichen .h und .cpp trennen kann, sondern alles in eine Datei gehört? Und die Methoden nach Möglichkeit als inline definiert werden sollten?</p>
<p>Danke im voraus</p>
<p>Nerva</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410416</guid><dc:creator><![CDATA[Nerva]]></dc:creator><pubDate>Fri, 25 Jul 2014 12:03:25 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Template Klassen on Fri, 25 Jul 2014 08:49:12 GMT]]></title><description><![CDATA[<p>Nicht ganz.</p>
<p>Wenn du ein Funktionstemplate oder Klassentemplate nutzen willst, dann muss der Compiler zur Compilezeit (nicht erst beim Linken!) alles darüber wissen.</p>
<p>Gewöhnlich wird das erreicht, wenn du in deiner Headerdatei einfach alles direkt definierst:</p>
<pre><code>// Foo.h
template&lt;class T&gt;
void foo(T const&amp; x)
{
    std::cout &lt;&lt; x;
}
</code></pre>
<p>Dann gibt es noch die logische Trennung, indem die Definitionen in den Header inkludiert werden:</p>
<pre><code>// Foo.impl
template&lt;class T&gt;
void foo(T const&amp; x)
{
    std::cout &lt;&lt; x;
}

// Foo.h
template&lt;class T&gt;
void foo(T const&amp; x);

include &quot;Foo.impl&quot;
</code></pre>
<p>Und dann gibt es noch das Schlüsselwort export (?!)...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410417</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 25 Jul 2014 08:49:12 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Template Klassen on Fri, 25 Jul 2014 08:50:49 GMT]]></title><description><![CDATA[<p>Vorab: Es heißt <strong>Klassentemplate</strong>, nicht Template Klasse.</p>
<blockquote>
<p>sondern alles in eine Datei gehört?</p>
</blockquote>
<p>Es muss nicht in eine Datei. Du kannst es auch in zwei Header aufteilen; was aber immer gelten muss ist dass in jeder Übersetzungseinheit (bzw. Source-Datei, .cpp) in der du das Template verwendest die Definition vorhanden ist.</p>
<p>In C++98 wurde ein Schlüsselwort namens<a href="http://www.gotw.ca/publications/mill23-x.htm" rel="nofollow"> <code>export</code> </a>eingeführt, welches das von dir angesprochene Aufteilen ermöglichen sollte, jedoch war die Implementierung so kompliziert und zeitaufwendig dass es wieder entfernt wurde und seit C++11 zwar ein reserviertes aber nicht benutztes Schlüsselwort darstellt.</p>
<blockquote>
<p>Und die Methoden nach Möglichkeit als inline definiert werden sollten?</p>
</blockquote>
<p>Nein, <code>inline</code> ist bei Funktionstemplates überflüssig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2410418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410418</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Fri, 25 Jul 2014 08:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Template Klassen on Fri, 25 Jul 2014 11:40:32 GMT]]></title><description><![CDATA[<p>Okay Danke <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/2410448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2410448</guid><dc:creator><![CDATA[Nerva]]></dc:creator><pubDate>Fri, 25 Jul 2014 11:40:32 GMT</pubDate></item></channel></rss>