<?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[Von Template-Klasse erben]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich stehe vor folgendem Problem:<br />
Ich habe eine Template-Klasse geschrieben und möchte nun eine erbende Klasse erstellen, die jedoch KEINE Template-Klasse sein soll.</p>
<p>Ein kleines Beispiel</p>
<p>Template-Klasse:</p>
<pre><code class="language-cpp">// basicitem.h

template &lt;class T&gt;
class BasicItem
{
public:
    BasicItem();

};

// basicitem.cpp
template &lt;class T&gt;
BasicItem&lt;T&gt;::BasicItem()
{
}
</code></pre>
<p>Erbende Klasse:</p>
<pre><code class="language-cpp">//diritem.h
class DirItem : public BasicItem&lt;int&gt;
{
public:
    DirItem();
};

//diritem.cpp
template &lt;class T&gt;
BasicItem&lt;T&gt;::BasicItem()
{
}
</code></pre>
<p>Dieses Konstrukt resultiert leider in einem Linker-Fehler:</p>
<blockquote>
<p>Undefined symbols:<br />
&quot;BasicItem&lt;int&gt;::BasicItem()&quot;, referenced from:<br />
DirItem::DirItem()in diritem.o<br />
DirItem::DirItem()in diritem.o<br />
ld: symbol(s) not found<br />
collect2: ld returned 1 exit status<br />
make: *** [test2] Error 1</p>
</blockquote>
<p>Ich vermute einfach mal das sowas in C++ möglich ist ;-).</p>
<p>Kann mir da vielleicht jemand auf die Sprünge helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265497/von-template-klasse-erben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 01:36:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265497.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Apr 2010 09:22:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Von Template-Klasse erben on Sat, 24 Apr 2010 09:24:09 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich stehe vor folgendem Problem:<br />
Ich habe eine Template-Klasse geschrieben und möchte nun eine erbende Klasse erstellen, die jedoch KEINE Template-Klasse sein soll.</p>
<p>Ein kleines Beispiel</p>
<p>Template-Klasse:</p>
<pre><code class="language-cpp">// basicitem.h

template &lt;class T&gt;
class BasicItem
{
public:
    BasicItem();

};

// basicitem.cpp
template &lt;class T&gt;
BasicItem&lt;T&gt;::BasicItem()
{
}
</code></pre>
<p>Erbende Klasse:</p>
<pre><code class="language-cpp">//diritem.h
class DirItem : public BasicItem&lt;int&gt;
{
public:
    DirItem();
};

//diritem.cpp
template &lt;class T&gt;
BasicItem&lt;T&gt;::BasicItem()
{
}
</code></pre>
<p>Dieses Konstrukt resultiert leider in einem Linker-Fehler:</p>
<blockquote>
<p>Undefined symbols:<br />
&quot;BasicItem&lt;int&gt;::BasicItem()&quot;, referenced from:<br />
DirItem::DirItem()in diritem.o<br />
DirItem::DirItem()in diritem.o<br />
ld: symbol(s) not found<br />
collect2: ld returned 1 exit status<br />
make: *** [test2] Error 1</p>
</blockquote>
<p>Ich vermute einfach mal das sowas in C++ möglich ist ;-).</p>
<p>Kann mir da vielleicht jemand auf die Sprünge helfen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887568</guid><dc:creator><![CDATA[DerHandwerk]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:24:09 GMT</pubDate></item><item><title><![CDATA[Reply to Von Template-Klasse erben on Sat, 24 Apr 2010 09:29:17 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-151578.html" rel="nofollow">Frage 5 im ersten Posting</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887570</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to Von Template-Klasse erben on Sat, 24 Apr 2010 09:40:06 GMT]]></title><description><![CDATA[<p>DerHandwerk schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//diritem.h
class DirItem : public BasicItem&lt;int&gt;
{
public:
    DirItem();
};
</code></pre>
</blockquote>
<p>DirItem::DirItem wurde deklariert, aber nirgends definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887572</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:40:06 GMT</pubDate></item><item><title><![CDATA[Reply to Von Template-Klasse erben on Sat, 24 Apr 2010 09:48:07 GMT]]></title><description><![CDATA[<p>Super Danke für die schnelle Hilfe.</p>
<p>Ich habe einfach alles in die Header Datei gepackt (alles aus der .cpp Datei) und jetzt läuft es.</p>
<p>Habt vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887575</guid><dc:creator><![CDATA[DerHandwerk]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:48:07 GMT</pubDate></item><item><title><![CDATA[Reply to Von Template-Klasse erben on Sat, 24 Apr 2010 09:52:43 GMT]]></title><description><![CDATA[<p>DerHandwerk schrieb:</p>
<blockquote>
<p>Ich habe einfach alles in die Header Datei gepackt (alles aus der .cpp Datei) und jetzt läuft es.</p>
</blockquote>
<p>Auch die Definition von DirItem::DirItem, welche in einer Header-Datei nichts zu suchen hat (!) -- es sei denn, sie ist inline ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887579</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 24 Apr 2010 09:52:43 GMT</pubDate></item><item><title><![CDATA[Reply to Von Template-Klasse erben on Sat, 24 Apr 2010 10:00:44 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>DerHandwerk schrieb:</p>
<blockquote>
<p>Ich habe einfach alles in die Header Datei gepackt (alles aus der .cpp Datei) und jetzt läuft es.</p>
</blockquote>
<p>Auch die Definition von DirItem::DirItem, welche in einer Header-Datei nichts zu suchen hat (!) -- es sei denn, sie ist inline ?</p>
</blockquote>
<p>Ich vermute mal dass er da einen copy&amp;paste-fehler begangen hat und inder diritem.cpp auch der entsprechende Konstruktor definiert wurde und NICHT der Ctor von BasicItem.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/24365">@DerHandwerk</a>, dir sei nahegelegt, vor der nächsten Frage die mit <strong>wichtig</strong> gekennzeichneten Threads durchzulesen und danach zu handeln, bevor du fragst - dzu gehört unter anderem das Lesen der FAQ und der Besuch von google.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887584</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Sat, 24 Apr 2010 10:00:44 GMT</pubDate></item></channel></rss>