<?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[klassentemplate problem!]]></title><description><![CDATA[<p>hi leute ich hab ein problem mit meinem klassentemplate. kann mir jemand helfen?</p>
<p>number.h</p>
<pre><code class="language-cpp">template&lt;typename type&gt;
class number
{
private:
	type	value_;

public:
	number(void) : value_(0)
	{

	}

	number(const type value) : value_(value)
	{

	}

	~number(void)
	{

	}

	type	getValue(void) const;
	void	setValue(type value);

	type	operator +(number other);
	type	operator -(number other);
	type	operator *(number other);
	type	operator /(number other);
};
</code></pre>
<p>number.cpp</p>
<pre><code class="language-cpp">//*********************************************************************//
#include &quot;number.h&quot;

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::getValue(void) const
{
	return(value_);
}

//*********************************************************************//
template&lt;typename type&gt;
void number&lt;type&gt;::setValue(type value)
{
	value_ = value;
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator +(number other)
{
	return(value_ + other.getValue());
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator -(number other)
{
	return(value_ - other.getValue());
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator *(number other)
{
	return(value_ * other.getValue());
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator /(number other)
{
	if(other.getValue() == 0)
		return 0;

	return(value_ / other.getValue());
}
</code></pre>
<p>und main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;number.h&quot;

using namespace std;

int main()
{
	number&lt;int&gt; zahl1(20);
	number&lt;int&gt; zahl2(13);

	cout &lt;&lt; &quot;operator+ (20, 13) == &quot; &lt;&lt; zahl1 + zahl2 &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>folgender fehler:<br />
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: int __thiscall number&lt;int&gt;::operator+(class number&lt;int&gt;)&quot; (??H?$number@H@@QAEHV0@@Z)&quot; in Funktion &quot;_main&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/171930/klassentemplate-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 15:27:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/171930.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Jan 2007 18:57:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to klassentemplate problem! on Tue, 30 Jan 2007 18:57:48 GMT]]></title><description><![CDATA[<p>hi leute ich hab ein problem mit meinem klassentemplate. kann mir jemand helfen?</p>
<p>number.h</p>
<pre><code class="language-cpp">template&lt;typename type&gt;
class number
{
private:
	type	value_;

public:
	number(void) : value_(0)
	{

	}

	number(const type value) : value_(value)
	{

	}

	~number(void)
	{

	}

	type	getValue(void) const;
	void	setValue(type value);

	type	operator +(number other);
	type	operator -(number other);
	type	operator *(number other);
	type	operator /(number other);
};
</code></pre>
<p>number.cpp</p>
<pre><code class="language-cpp">//*********************************************************************//
#include &quot;number.h&quot;

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::getValue(void) const
{
	return(value_);
}

//*********************************************************************//
template&lt;typename type&gt;
void number&lt;type&gt;::setValue(type value)
{
	value_ = value;
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator +(number other)
{
	return(value_ + other.getValue());
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator -(number other)
{
	return(value_ - other.getValue());
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator *(number other)
{
	return(value_ * other.getValue());
}

//*********************************************************************//
template&lt;typename type&gt;
type number&lt;type&gt;::operator /(number other)
{
	if(other.getValue() == 0)
		return 0;

	return(value_ / other.getValue());
}
</code></pre>
<p>und main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;number.h&quot;

using namespace std;

int main()
{
	number&lt;int&gt; zahl1(20);
	number&lt;int&gt; zahl2(13);

	cout &lt;&lt; &quot;operator+ (20, 13) == &quot; &lt;&lt; zahl1 + zahl2 &lt;&lt; endl;

	return 0;
}
</code></pre>
<p>folgender fehler:<br />
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;public: int __thiscall number&lt;int&gt;::operator+(class number&lt;int&gt;)&quot; (??H?$number@H@@QAEHV0@@Z)&quot; in Funktion &quot;_main&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220091</guid><dc:creator><![CDATA[NwP]]></dc:creator><pubDate>Tue, 30 Jan 2007 18:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to klassentemplate problem! on Tue, 30 Jan 2007 19:10:36 GMT]]></title><description><![CDATA[<p>Bei templates muss die Implementation in der selben Datei stehen wie der Rumpf der Klasse...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220097</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Tue, 30 Jan 2007 19:10:36 GMT</pubDate></item><item><title><![CDATA[Reply to klassentemplate problem! on Tue, 30 Jan 2007 19:13:38 GMT]]></title><description><![CDATA[<p>Wenn du die Implementierung für eine Template-Klasse in einer separaten Implementierungsdatei unterbringen willst, solltest Du folgendermaßen einbinden und die cpp-Datei vom Build ausschließen.</p>
<pre><code class="language-cpp">// number.h

template&lt;typename type&gt;
class number
{
//...
};

#include &quot;number.cpp&quot;
</code></pre>
<p>Genausogut kannst du die Implementierung direkt in den Header aufnehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220099</guid><dc:creator><![CDATA[Nanuq]]></dc:creator><pubDate>Tue, 30 Jan 2007 19:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to klassentemplate problem! on Wed, 31 Jan 2007 20:58:39 GMT]]></title><description><![CDATA[<p>aha! deswegen hab ich keine beispiele für klassentemplates gefunden, wobei header- und quelldatein verwendet werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /><br />
danke jungs für die info</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1220794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1220794</guid><dc:creator><![CDATA[NwP]]></dc:creator><pubDate>Wed, 31 Jan 2007 20:58:39 GMT</pubDate></item></channel></rss>