<?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[Fehler finden in Template?]]></title><description><![CDATA[<p>Was ist hier falsch? Wenn ich eine normale Klasse mit Double anstatt T schreibe, bekomme ich kein Fehler und als Template:<br />
Template_example error LNK2019: unresolved external symbol &quot;public: bool __thiscall Stack&lt;double&gt;::pop(double &amp;)&quot; (?pop@?$Stack@N@@QAE_NAAN@Z) referenced in function _main</p>
<p><strong>main.cpp</strong></p>
<pre><code>#include&lt;iostream&gt;

using std::cout;
using std::cin;
using std::endl;

#include &quot;tstack.h&quot;

int main()
{

	Stack&lt;double&gt; doubleStack(5);
	double f=1.1;
	cout&lt;&lt;&quot;Pushing elements onto doubleStack\n&quot;;
	while(doubleStack.push(f)){
		cout&lt;&lt;f&lt;&lt;' ';
		f +=1.1;
	}

	cout&lt;&lt;&quot;\nStack is full. Cannot push&quot;&lt;&lt;f
		&lt;&lt;&quot;\n\nPoping&quot;;

	while(doubleStack.pop(f))
		cout&lt;&lt;f&lt;&lt;' ';

	cout&lt;&lt;&quot;\nStack is empty. Cannot pop\n&quot;;

	return 0;
}
</code></pre>
<p><strong>tstack.h</strong></p>
<pre><code>#ifndef TSTACK_H
#define TSTACK_H

template&lt;class T&gt;
class Stack{
public:
	Stack(int s=10);
	~Stack(){delete [] stackPtr; stackPtr=NULL;}
	bool push(const T&amp;);
	bool pop(T &amp;);
private:
	int size;
	int top;
	T *stackPtr;
	bool isEmpty() const {return top==-1;}
	bool isFull() const {return top==size-1;}
};
#endif
</code></pre>
<p><strong>tsctack.cpp</strong></p>
<pre><code>#include &quot;tstack.h&quot;

template&lt;class T&gt;
Stack&lt;T&gt;::Stack(int s)
//Stack::Stack(int s)
{

	size=s&gt;0? s : 10;
	top=-1;
	stackPtr=new T[size];
}

template&lt;class T&gt;
bool Stack&lt;T&gt;::push(const T &amp;pushValue)
//bool Stack::push(const double &amp;pushValue)
{
	if(!isFull()){
		stackPtr[++top]=pushValue;
		return true;
	}
	return false;
}

template&lt;class T&gt;
bool Stack&lt;T&gt;::pop(T &amp;popvalue)
{
	if(!isEmpty()){
		popValue=stackPtr[top--];
		return true;
	}
	return false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/139480/fehler-finden-in-template</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 13:23:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/139480.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Mar 2006 08:53:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler finden in Template? on Tue, 07 Mar 2006 08:53:05 GMT]]></title><description><![CDATA[<p>Was ist hier falsch? Wenn ich eine normale Klasse mit Double anstatt T schreibe, bekomme ich kein Fehler und als Template:<br />
Template_example error LNK2019: unresolved external symbol &quot;public: bool __thiscall Stack&lt;double&gt;::pop(double &amp;)&quot; (?pop@?$Stack@N@@QAE_NAAN@Z) referenced in function _main</p>
<p><strong>main.cpp</strong></p>
<pre><code>#include&lt;iostream&gt;

using std::cout;
using std::cin;
using std::endl;

#include &quot;tstack.h&quot;

int main()
{

	Stack&lt;double&gt; doubleStack(5);
	double f=1.1;
	cout&lt;&lt;&quot;Pushing elements onto doubleStack\n&quot;;
	while(doubleStack.push(f)){
		cout&lt;&lt;f&lt;&lt;' ';
		f +=1.1;
	}

	cout&lt;&lt;&quot;\nStack is full. Cannot push&quot;&lt;&lt;f
		&lt;&lt;&quot;\n\nPoping&quot;;

	while(doubleStack.pop(f))
		cout&lt;&lt;f&lt;&lt;' ';

	cout&lt;&lt;&quot;\nStack is empty. Cannot pop\n&quot;;

	return 0;
}
</code></pre>
<p><strong>tstack.h</strong></p>
<pre><code>#ifndef TSTACK_H
#define TSTACK_H

template&lt;class T&gt;
class Stack{
public:
	Stack(int s=10);
	~Stack(){delete [] stackPtr; stackPtr=NULL;}
	bool push(const T&amp;);
	bool pop(T &amp;);
private:
	int size;
	int top;
	T *stackPtr;
	bool isEmpty() const {return top==-1;}
	bool isFull() const {return top==size-1;}
};
#endif
</code></pre>
<p><strong>tsctack.cpp</strong></p>
<pre><code>#include &quot;tstack.h&quot;

template&lt;class T&gt;
Stack&lt;T&gt;::Stack(int s)
//Stack::Stack(int s)
{

	size=s&gt;0? s : 10;
	top=-1;
	stackPtr=new T[size];
}

template&lt;class T&gt;
bool Stack&lt;T&gt;::push(const T &amp;pushValue)
//bool Stack::push(const double &amp;pushValue)
{
	if(!isFull()){
		stackPtr[++top]=pushValue;
		return true;
	}
	return false;
}

template&lt;class T&gt;
bool Stack&lt;T&gt;::pop(T &amp;popvalue)
{
	if(!isEmpty()){
		popValue=stackPtr[top--];
		return true;
	}
	return false;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1010263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010263</guid><dc:creator><![CDATA[carmen]]></dc:creator><pubDate>Tue, 07 Mar 2006 08:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler finden in Template? on Tue, 07 Mar 2006 08:56:22 GMT]]></title><description><![CDATA[<p>Bei Templates solltest du die Funktionen in der Headerdatei definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010272</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Tue, 07 Mar 2006 08:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler finden in Template? on Tue, 07 Mar 2006 09:23:07 GMT]]></title><description><![CDATA[<p>nicht solltest, musst. und das ist auch die lösung für das problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010298</guid><dc:creator><![CDATA[template&amp;lt;&amp;gt;]]></dc:creator><pubDate>Tue, 07 Mar 2006 09:23:07 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler finden in Template? on Tue, 07 Mar 2006 09:23:38 GMT]]></title><description><![CDATA[<p>FAQ: <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1010299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010299</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Tue, 07 Mar 2006 09:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler finden in Template? on Tue, 07 Mar 2006 09:35:16 GMT]]></title><description><![CDATA[<p>Wenn das ganze Template in tstack.h deklariert und implementiert wird, habe ich kein Fehler....</p>
<p>Warum ?<br />
Ich programmiere mit Visual <a href="http://Studio.NET" rel="nofollow">Studio.NET</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010310</guid><dc:creator><![CDATA[carmen]]></dc:creator><pubDate>Tue, 07 Mar 2006 09:35:16 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler finden in Template? on Tue, 07 Mar 2006 09:36:17 GMT]]></title><description><![CDATA[<p>carmen schrieb:</p>
<blockquote>
<p>Wenn das ganze Template in tstack.h deklariert und implementiert wird, habe ich kein Fehler....</p>
<p>Warum ?<br />
Ich programmiere mit Visual <a href="http://Studio.NET" rel="nofollow">Studio.NET</a></p>
</blockquote>
<p>weil du eben damit das problem gelöst hast!</p>
<p>templates &quot;kannst&quot; du nicht in mehrere dateien aufteilen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010311</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Tue, 07 Mar 2006 09:36:17 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler finden in Template? on Tue, 07 Mar 2006 09:40:06 GMT]]></title><description><![CDATA[<p>HERZLICHEN DANK!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1010319</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1010319</guid><dc:creator><![CDATA[carmen]]></dc:creator><pubDate>Tue, 07 Mar 2006 09:40:06 GMT</pubDate></item></channel></rss>