<?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[Problem mit Template-Klasse]]></title><description><![CDATA[<p>Hallo,<br />
mein Problem ist,dass ich kein Objekt von meiner Template-Klasse erzeugen kann, von meiner normalen Klasse aber schon,obwohl beide Klassen in der gleichen Header-Datei deklariert und in der gleichen cpp-Datei definiert sind. Woran liegt das?</p>
<p>Danke</p>
<p>Header.h</p>
<pre><code class="language-cpp">class Klasse
{
    public:
        Klasse(void);
};

template &lt;typename T&gt; class TKlasse
{
    public:
        TKlasse(void);
};
</code></pre>
<p>Code.cpp</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

Klasse::Klasse(void)
{
    //...
};

template &lt;typename T&gt; TKlasse&lt;T&gt;::TKlasse(void)
{
    //...
};
</code></pre>
<p>Main.cpp</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

void main()
{
    Klasse Obj1; // macht keine Probleme
    TKlasse&lt;int&gt; Obj2; // ist dem Compiler nicht bekannt
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/208922/problem-mit-template-klasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 04:06:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208922.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Mar 2008 15:31:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Template-Klasse on Mon, 24 Mar 2008 15:31:01 GMT]]></title><description><![CDATA[<p>Hallo,<br />
mein Problem ist,dass ich kein Objekt von meiner Template-Klasse erzeugen kann, von meiner normalen Klasse aber schon,obwohl beide Klassen in der gleichen Header-Datei deklariert und in der gleichen cpp-Datei definiert sind. Woran liegt das?</p>
<p>Danke</p>
<p>Header.h</p>
<pre><code class="language-cpp">class Klasse
{
    public:
        Klasse(void);
};

template &lt;typename T&gt; class TKlasse
{
    public:
        TKlasse(void);
};
</code></pre>
<p>Code.cpp</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

Klasse::Klasse(void)
{
    //...
};

template &lt;typename T&gt; TKlasse&lt;T&gt;::TKlasse(void)
{
    //...
};
</code></pre>
<p>Main.cpp</p>
<pre><code class="language-cpp">#include &quot;Header.h&quot;

void main()
{
    Klasse Obj1; // macht keine Probleme
    TKlasse&lt;int&gt; Obj2; // ist dem Compiler nicht bekannt
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1479638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479638</guid><dc:creator><![CDATA[Programmierer]]></dc:creator><pubDate>Mon, 24 Mar 2008 15:31:01 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Template-Klasse on Mon, 24 Mar 2008 15:40:26 GMT]]></title><description><![CDATA[<p>Tenmplate-Definition müssen in den Header-Dateien definiert sein (direkt oder indirekt per #include eingebunden).<br />
Der Compiler muß die Definitionen schon kennen, nicht erst der Linker (nur ein Compiler unterstützt das Schlüsselwort &quot;export&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479646</guid><dc:creator><![CDATA[~template]]></dc:creator><pubDate>Mon, 24 Mar 2008 15:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Template-Klasse on Mon, 24 Mar 2008 17:40:43 GMT]]></title><description><![CDATA[<p>~template schrieb:</p>
<blockquote>
<p>Der Compiler muß die Definitionen schon kennen, nicht erst der Linker (nur ein Compiler unterstützt das Schlüsselwort &quot;export&quot;).</p>
</blockquote>
<p>Und selbst dann muss der Compiler die Definitionen kennen, nicht erst der Linker</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479697</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 24 Mar 2008 17:40:43 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Template-Klasse on Mon, 24 Mar 2008 19:28:14 GMT]]></title><description><![CDATA[<p>Nein, gerade dafür ist ja das Schlüsselwort &quot;export&quot; gedacht gewesen.<br />
Jedoch ist die Umsetzung so schwierig, daß bisher nur der Comeau-Compiler (bzw. dessen Linker!) damit umgehen kann (und es wird wohl auch der einzige bleiben).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479749</guid><dc:creator><![CDATA[~template]]></dc:creator><pubDate>Mon, 24 Mar 2008 19:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Template-Klasse on Mon, 24 Mar 2008 20:09:12 GMT]]></title><description><![CDATA[<p>Wie wird das eigentlich gemacht? Wird der Code beim Linken nochmal nachkompiliert? Schließlich muss der Linker ja herausfinden, von wo und mit welchen Typen das Template instantiiert wird und entsprechende Code-Instanzen erstellen. Im Prinzip ja also &quot;nochmal kompilieren&quot;. Oder nicht? Und der Aufbau von Libs ist Compiler-Sache, liege ich da richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479771</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 24 Mar 2008 20:09:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Template-Klasse on Mon, 24 Mar 2008 20:19:16 GMT]]></title><description><![CDATA[<p>s. z.B. <a href="http://www.comeaucomputing.com/4.0/docs/userman/export.html" rel="nofollow">http://www.comeaucomputing.com/4.0/docs/userman/export.html</a></p>
<p>Es wird quasi eine Art Zwischen-Unit erzeugt, in der dann die Template-Definitionen drinsstehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479776</guid><dc:creator><![CDATA[~template]]></dc:creator><pubDate>Mon, 24 Mar 2008 20:19:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Template-Klasse on Tue, 25 Mar 2008 06:01:23 GMT]]></title><description><![CDATA[<p>genau deshalb müssen für diese Zwischenunit beim &quot;prelinking&quot; die Definitionen vorhanden sein. Auf der von dir verlinkten Seite stehts:</p>
<blockquote>
<p>The &quot;. et&quot; files only inform Comeau C++ about the location of exported template definitions; they do not actually contain those definitions. <strong>The sources containing the exported template definitions must therefore be made available at the time of instantiation (usually, when prelinking is done).</strong> This is simply done as per the example above. Note that the export facility is not a mechanism for avoiding the publication of template definitions in source form.</p>
</blockquote>
<p>Mal abgesehn davon dass es dadurch immer noch kein portabler Code ist, wenns nur ein Compiler kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1479854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1479854</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 25 Mar 2008 06:01:23 GMT</pubDate></item></channel></rss>