<?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[[geloest] problem mit vererbung und templates error LNK2019]]></title><description><![CDATA[<p>hi<br />
ich versuche grad nen simplen ressourcen manager zu schreiben und wollte dafür ne basisklasse haben und dann davon ableitungen für die jeweiligen ressourcen.</p>
<p>ich versuch das ganze über templates zu machen und den jeweiligen typ dann erst im kind festzulegen.</p>
<p>jetzt bekomme ich aber immer den fehler (VS2008)</p>
<p>error LNK2019: unresolved external symbol &quot;public: __thiscall jg::ResourceManager&lt;class sf::Image&gt;::ResourceManager&lt;class sf::Image&gt;(void)&quot; (??0?$ResourceManager@VImage@sf@@@jg@@QAE@XZ) referenced in function &quot;public: __thiscall jg::SFImageManager::SFImageManager(void)&quot; (??0SFImageManager@jg@@QAE@XZ) SFImageManager.obj</p>
<p>sieht mir stark nach nem problem mit der verwendung von templates aus. ich steig aber nicht durch.</p>
<p>mein kopf sieht so aus</p>
<pre><code>template &lt;class T&gt; 
	class ResourceManager : public Singleton&lt;ResourceManager&lt;T&gt;&gt;
</code></pre>
<p>und</p>
<pre><code>class SFImageManager :
		public ResourceManager&lt;sf::Image&gt;
</code></pre>
<p>vielleicht reicht das schon, ansonsten hier den ganzen code (nicht viel).</p>
<p>ResourceManager<br />
<a href="http://rafb.net/p/18Pbch25.html" rel="nofollow">.hpp</a><br />
<a href="http://rafb.net/p/igwRjA15.html" rel="nofollow">.cpp</a></p>
<p>SFImageManager:ResourceManager<br />
<a href="http://rafb.net/p/1piGQ124.html" rel="nofollow">.hpp</a><br />
<a href="http://rafb.net/p/dzIZ9114.html" rel="nofollow">.cpp</a></p>
<p>Ist wahrscheinlich ein sehr grundlegender Fehler.. ich bin noch anfänger in cpp.</p>
<p>jeden tipp nehme ich gerne an.</p>
<p>danke schonmal für die hilfe</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223967/geloest-problem-mit-vererbung-und-templates-error-lnk2019</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 12:18:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223967.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Oct 2008 13:07:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [geloest] problem mit vererbung und templates error LNK2019 on Fri, 03 Oct 2008 14:09:52 GMT]]></title><description><![CDATA[<p>hi<br />
ich versuche grad nen simplen ressourcen manager zu schreiben und wollte dafür ne basisklasse haben und dann davon ableitungen für die jeweiligen ressourcen.</p>
<p>ich versuch das ganze über templates zu machen und den jeweiligen typ dann erst im kind festzulegen.</p>
<p>jetzt bekomme ich aber immer den fehler (VS2008)</p>
<p>error LNK2019: unresolved external symbol &quot;public: __thiscall jg::ResourceManager&lt;class sf::Image&gt;::ResourceManager&lt;class sf::Image&gt;(void)&quot; (??0?$ResourceManager@VImage@sf@@@jg@@QAE@XZ) referenced in function &quot;public: __thiscall jg::SFImageManager::SFImageManager(void)&quot; (??0SFImageManager@jg@@QAE@XZ) SFImageManager.obj</p>
<p>sieht mir stark nach nem problem mit der verwendung von templates aus. ich steig aber nicht durch.</p>
<p>mein kopf sieht so aus</p>
<pre><code>template &lt;class T&gt; 
	class ResourceManager : public Singleton&lt;ResourceManager&lt;T&gt;&gt;
</code></pre>
<p>und</p>
<pre><code>class SFImageManager :
		public ResourceManager&lt;sf::Image&gt;
</code></pre>
<p>vielleicht reicht das schon, ansonsten hier den ganzen code (nicht viel).</p>
<p>ResourceManager<br />
<a href="http://rafb.net/p/18Pbch25.html" rel="nofollow">.hpp</a><br />
<a href="http://rafb.net/p/igwRjA15.html" rel="nofollow">.cpp</a></p>
<p>SFImageManager:ResourceManager<br />
<a href="http://rafb.net/p/1piGQ124.html" rel="nofollow">.hpp</a><br />
<a href="http://rafb.net/p/dzIZ9114.html" rel="nofollow">.cpp</a></p>
<p>Ist wahrscheinlich ein sehr grundlegender Fehler.. ich bin noch anfänger in cpp.</p>
<p>jeden tipp nehme ich gerne an.</p>
<p>danke schonmal für die hilfe</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1592929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592929</guid><dc:creator><![CDATA[thoniel]]></dc:creator><pubDate>Fri, 03 Oct 2008 14:09:52 GMT</pubDate></item><item><title><![CDATA[Reply to [geloest] problem mit vererbung und templates error LNK2019 on Fri, 03 Oct 2008 13:17:47 GMT]]></title><description><![CDATA[<p>Ist ein häufiges Problem bei Anfängern mit Templates, weil die Aufteilung in Header und Implementierung bei Templates nicht mehr wirklich klappt.</p>
<p>Siehe hier <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39467.html</a></p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1592938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592938</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Fri, 03 Oct 2008 13:17:47 GMT</pubDate></item><item><title><![CDATA[Reply to [geloest] problem mit vererbung und templates error LNK2019 on Fri, 03 Oct 2008 14:09:35 GMT]]></title><description><![CDATA[<p>hmm jaa aber wenn ich die kind klasse auskommentiere, bekomm ich keinen fehler und nur die elternklasse ist ja ein template.</p>
<p>///edit<br />
ok das liegt wohl dadran das der fehler erst auftritt wenn man den header einbindet...</p>
<p>////edit<br />
ok, habs jetzt so gemacht<br />
#include &quot;resourcemanager.inl&quot;</p>
<p>dennoch bekomm ich jetzt folgenden fehler:</p>
<p>error LNK2001: unresolved external symbol &quot;protected: virtual class sf::Image * __thiscall jg::ResourceManager&lt;class sf::Image&gt;::LoadDataProcedure(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; const &amp;)&quot; (?LoadDataProcedure@?<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>R</mi><mi>e</mi><mi>s</mi><mi>o</mi><mi>u</mi><mi>r</mi><mi>c</mi><mi>e</mi><mi>M</mi><mi>a</mi><mi>n</mi><mi>a</mi><mi>g</mi><mi>e</mi><mi>r</mi><mi mathvariant="normal">@</mi><mi>V</mi><mi>I</mi><mi>m</mi><mi>a</mi><mi>g</mi><mi>e</mi><mi mathvariant="normal">@</mi><mi>s</mi><mi>f</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>j</mi><mi>g</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>M</mi><mi>A</mi><mi>E</mi><mi>P</mi><mi>A</mi><mi>V</mi><mi>I</mi><mi>m</mi><mi>a</mi><mi>g</mi><mi>e</mi><mi mathvariant="normal">@</mi><mi>s</mi><mi>f</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>A</mi><mi>B</mi><mi>V</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">ResourceManager@VImage@sf@@@jg@@MAEPAVImage@sf@@ABV?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.8888799999999999em;vertical-align:-0.19444em;"></span><span class="base textstyle uncramped"><span class="mord mathit" style="margin-right:0.00773em;">R</span><span class="mord mathit">e</span><span class="mord mathit">s</span><span class="mord mathit">o</span><span class="mord mathit">u</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">c</span><span class="mord mathit">e</span><span class="mord mathit" style="margin-right:0.10903em;">M</span><span class="mord mathit">a</span><span class="mord mathit">n</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">e</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="mord mathit">m</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">e</span><span class="mord mathrm">@</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.10764em;">f</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.05724em;">j</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.10903em;">M</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.05764em;">E</span><span class="mord mathit" style="margin-right:0.13889em;">P</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mord mathit" style="margin-right:0.07847em;">I</span><span class="mord mathit">m</span><span class="mord mathit">a</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathit">e</span><span class="mord mathrm">@</span><span class="mord mathit">s</span><span class="mord mathit" style="margin-right:0.10764em;">f</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit">A</span><span class="mord mathit" style="margin-right:0.05017em;">B</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mclose">?</span></span></span></span>basic_string@DU?<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>c</mi><mi>h</mi><mi>a</mi><msub><mi>r</mi><mi>t</mi></msub><mi>r</mi><mi>a</mi><mi>i</mi><mi>t</mi><mi>s</mi><mi mathvariant="normal">@</mi><mi>D</mi><mi mathvariant="normal">@</mi><mi>s</mi><mi>t</mi><mi>d</mi><mi mathvariant="normal">@</mi><mi mathvariant="normal">@</mi><mi>V</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">char_traits@D@std@@V?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:0.84444em;vertical-align:-0.15em;"></span><span class="base textstyle uncramped"><span class="mord mathit">c</span><span class="mord mathit">h</span><span class="mord mathit">a</span><span class="mord"><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:-0.02778em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord mathit">t</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">a</span><span class="mord mathit">i</span><span class="mord mathit">t</span><span class="mord mathit">s</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathrm">@</span><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mord mathit">d</span><span class="mord mathrm">@</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.22222em;">V</span><span class="mclose">?</span></span></span></span>allocator@D@2@@std@@@Z) SFImageManager.obj</p>
<p>Ist es überhaupt möglich eine funktion abstrakt zu deklarieren</p>
<pre><code>protected:
virtual T* LoadDataProcedure(const std::string &amp;fileName);
</code></pre>
<p>und in der ableitung zu erstellen?</p>
<pre><code>sf::Image* LoadDataProcedure(const std::string &amp;fileName);
</code></pre>
<p>/////edit<br />
ok vergesst es^^ ich sollte vielleicht immer vorher gucken wie man sowas macht.</p>
<pre><code>virtual T* LoadDataProcedure(const std::string &amp;fileName)=0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1592944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592944</guid><dc:creator><![CDATA[thoniel]]></dc:creator><pubDate>Fri, 03 Oct 2008 14:09:35 GMT</pubDate></item></channel></rss>