<?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[Probleme bei Projekt mit g++]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin mit meinem Latein am Ende und hoffe hier kann mir jemand helfen...<br />
Ich versuche ein eigentlich recht einfaches Projekt umzusetzen und habe dazu eine Klasse mit .h und .cpp erstellt, dazu eine .cpp in der eine main() Methode implementiert ist. Mein Problem ist nun folgendes:<br />
Ich rufe in der main() eine Methode getValue() der Klasse Glyph auf, die in der .h deklariert und in der .cpp definiert ist und bekomme folgenden Fehler:<br />
<em>undefined reference to `Glyph&lt;int&gt;::getValue()'</em></p>
<p>sobald ich die Funktionsdefinition aus der glyph.cpp in die main.cpp oder in die glyph.cpp kopiere, funktioniert das ganze. Es scheint also offensichtlich an der Einbindung durch den Compiler zu liegen.<br />
Also habe ich eine <em>makefile</em> geschrieben, die alle drei Dateien compilieren und zu einem gemeinsamen output verbinden sollte. Sollte. Der Fehler bleibt der gleiche.**<br />
Code der glyph.cpp**</p>
<pre><code># include &quot;glyph.h&quot;
using namespace std;

template &lt;class T&gt;
T Glyph&lt;T&gt;::getValue()
{
    return value;
}
</code></pre>
<p><strong>Code der glyph.h</strong></p>
<pre><code>#ifndef GLYPH
#define GLYPH
using namespace std;
template &lt;class T&gt;
class Glyph{
	private:
	T value;
	Glyph *next;
	public:
	Glyph(T pValue){value = pValue;};
	~Glyph(){};
	void setNext(Glyph pNext){ next = pNext;};
	Glyph getNext(){ return next; };
	T getValue();

};
#endif
</code></pre>
<p><strong>Code der main.cpp</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &quot;glyph.h&quot;
using namespace std;

int main()
{
    Glyph &lt;int&gt; *g;
    g = new Glyph &lt;int&gt; (5);
    cout &lt;&lt; g-&gt;getValue();
    return 0;
}
</code></pre>
<p>Auch Varianten wie <em>g++ -Wall -c main.cpp glyph.cpp</em> oder ähnliches funktionieren nicht.</p>
<p>Bin etwas ratlos, ob es an meinem Einsatz von Templates liegt (bin neu auf dem Gebiet) oder tatsächlich irgendwas mit meiner Methode die Dateien einzubinden zu tun hat.</p>
<p>Für Hilfe wäre ich dankbar!</p>
<p>MfG<br />
Kuni</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305402/probleme-bei-projekt-mit-g</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 22:33:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305402.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 28 Jun 2012 08:17:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme bei Projekt mit g++ on Thu, 28 Jun 2012 08:17:33 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bin mit meinem Latein am Ende und hoffe hier kann mir jemand helfen...<br />
Ich versuche ein eigentlich recht einfaches Projekt umzusetzen und habe dazu eine Klasse mit .h und .cpp erstellt, dazu eine .cpp in der eine main() Methode implementiert ist. Mein Problem ist nun folgendes:<br />
Ich rufe in der main() eine Methode getValue() der Klasse Glyph auf, die in der .h deklariert und in der .cpp definiert ist und bekomme folgenden Fehler:<br />
<em>undefined reference to `Glyph&lt;int&gt;::getValue()'</em></p>
<p>sobald ich die Funktionsdefinition aus der glyph.cpp in die main.cpp oder in die glyph.cpp kopiere, funktioniert das ganze. Es scheint also offensichtlich an der Einbindung durch den Compiler zu liegen.<br />
Also habe ich eine <em>makefile</em> geschrieben, die alle drei Dateien compilieren und zu einem gemeinsamen output verbinden sollte. Sollte. Der Fehler bleibt der gleiche.**<br />
Code der glyph.cpp**</p>
<pre><code># include &quot;glyph.h&quot;
using namespace std;

template &lt;class T&gt;
T Glyph&lt;T&gt;::getValue()
{
    return value;
}
</code></pre>
<p><strong>Code der glyph.h</strong></p>
<pre><code>#ifndef GLYPH
#define GLYPH
using namespace std;
template &lt;class T&gt;
class Glyph{
	private:
	T value;
	Glyph *next;
	public:
	Glyph(T pValue){value = pValue;};
	~Glyph(){};
	void setNext(Glyph pNext){ next = pNext;};
	Glyph getNext(){ return next; };
	T getValue();

};
#endif
</code></pre>
<p><strong>Code der main.cpp</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &quot;glyph.h&quot;
using namespace std;

int main()
{
    Glyph &lt;int&gt; *g;
    g = new Glyph &lt;int&gt; (5);
    cout &lt;&lt; g-&gt;getValue();
    return 0;
}
</code></pre>
<p>Auch Varianten wie <em>g++ -Wall -c main.cpp glyph.cpp</em> oder ähnliches funktionieren nicht.</p>
<p>Bin etwas ratlos, ob es an meinem Einsatz von Templates liegt (bin neu auf dem Gebiet) oder tatsächlich irgendwas mit meiner Methode die Dateien einzubinden zu tun hat.</p>
<p>Für Hilfe wäre ich dankbar!</p>
<p>MfG<br />
Kuni</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228036</guid><dc:creator><![CDATA[Kuni1991]]></dc:creator><pubDate>Thu, 28 Jun 2012 08:17:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Projekt mit g++ on Thu, 28 Jun 2012 08:34:07 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/39467" rel="nofollow">http://www.c-plusplus.net/forum/39467</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228048</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 28 Jun 2012 08:34:07 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Projekt mit g++ on Thu, 28 Jun 2012 08:37:16 GMT]]></title><description><![CDATA[<p>Siehe auch Thread &quot;Die meistgestellten Fragen&quot; (oben im Forum, als &quot;wichtig&quot; markiert), Nummer 5.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228049</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 28 Jun 2012 08:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei Projekt mit g++ on Thu, 28 Jun 2012 08:42:58 GMT]]></title><description><![CDATA[<p>Okay, vielen Dank<br />
schade, dachte es gibt vllt. ein angenehmeres Workaround...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2228050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2228050</guid><dc:creator><![CDATA[Kuni1991]]></dc:creator><pubDate>Thu, 28 Jun 2012 08:42:58 GMT</pubDate></item></channel></rss>