<?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[friend deklaration in Klassen Templates?]]></title><description><![CDATA[<p>Halloechen, ich hab folgendes geschrieben:</p>
<pre><code class="language-cpp">template &lt;class ValueImp&gt;
class Value : public ValueImp
{
// [...]
friend Value&lt;ValueImp&gt; operator+(const Value&lt;ValueImp&gt;&amp; lhs, const Value&lt;ValueImp&gt;&amp; rhs);
// usw.  
};

// implementation...
template &lt;class ValueImp&gt;
Value&lt;ValueImp&gt; operator+ (const Value&lt;ValueImp&gt;&amp; lhs, const Value&lt;ValueImp&gt;&amp; rhs)
{ Value&lt;ValueImp&gt; result(lhs); result+=rhs; return result;}
</code></pre>
<p>Nun gibt mir der Compiler eine Warnung:</p>
<pre><code>value.hpp:36: warning: friend declaration `Value&lt;ValueImp&gt; operator+(const
   Value&lt;ValueImp&gt;&amp;, const Value&lt;ValueImp&gt;&amp;)' declares a non-template function
</code></pre>
<p>Sobald ich fuer eien Spezialisierung den operator+ bemuehen will, kommt vom compiler</p>
<pre><code>In function `main':
: undefined reference to `operator+(Value&lt;IntValueImp&gt; const&amp;, Value&lt;IntValueImp&gt; const&amp;)'
</code></pre>
<p>Wie dekariere ich die friend definition richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/184825/friend-deklaration-in-klassen-templates</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 23:56:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184825.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Jun 2007 14:50:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to friend deklaration in Klassen Templates? on Tue, 19 Jun 2007 14:50:55 GMT]]></title><description><![CDATA[<p>Halloechen, ich hab folgendes geschrieben:</p>
<pre><code class="language-cpp">template &lt;class ValueImp&gt;
class Value : public ValueImp
{
// [...]
friend Value&lt;ValueImp&gt; operator+(const Value&lt;ValueImp&gt;&amp; lhs, const Value&lt;ValueImp&gt;&amp; rhs);
// usw.  
};

// implementation...
template &lt;class ValueImp&gt;
Value&lt;ValueImp&gt; operator+ (const Value&lt;ValueImp&gt;&amp; lhs, const Value&lt;ValueImp&gt;&amp; rhs)
{ Value&lt;ValueImp&gt; result(lhs); result+=rhs; return result;}
</code></pre>
<p>Nun gibt mir der Compiler eine Warnung:</p>
<pre><code>value.hpp:36: warning: friend declaration `Value&lt;ValueImp&gt; operator+(const
   Value&lt;ValueImp&gt;&amp;, const Value&lt;ValueImp&gt;&amp;)' declares a non-template function
</code></pre>
<p>Sobald ich fuer eien Spezialisierung den operator+ bemuehen will, kommt vom compiler</p>
<pre><code>In function `main':
: undefined reference to `operator+(Value&lt;IntValueImp&gt; const&amp;, Value&lt;IntValueImp&gt; const&amp;)'
</code></pre>
<p>Wie dekariere ich die friend definition richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309213</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Jun 2007 14:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to friend deklaration in Klassen Templates? on Tue, 19 Jun 2007 15:15:06 GMT]]></title><description><![CDATA[<p>Hi,<br />
diese Frage taucht in letzter Zeit ja immer häufiger aus.<br />
Lösung: <a href="http://c-plusplus.net/forum/viewtopic-var-p-is-1293870.html#1293870" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-p-is-1293870.html#1293870</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309233</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 19 Jun 2007 15:15:06 GMT</pubDate></item><item><title><![CDATA[Reply to friend deklaration in Klassen Templates? on Tue, 19 Jun 2007 15:54:33 GMT]]></title><description><![CDATA[<p>Naja, ne wirkliche Lösung für die Geschichte mit den Friend-Deklarationen hab ich dem zwar icht entnehmen können, aber ich hab den Hinweis bekommen, dass ich operator+ garnicht als Friend deklarieren muss, da er nur auf den (public) operator+= zugreift und auf keinerlei private members. Wundert mich nur, dass er mir da die Fehlermeldung rausgibt - vielleicht ein Fehler an anderer Stelle. Danke für den link</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309251</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Jun 2007 15:54:33 GMT</pubDate></item><item><title><![CDATA[Reply to friend deklaration in Klassen Templates? on Tue, 19 Jun 2007 16:04:45 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Naja, ne wirkliche Lösung für die Geschichte mit den Friend-Deklarationen hab ich dem zwar icht entnehmen können, aber ich hab den Hinweis bekommen, dass ich operator+ garnicht als Friend deklarieren muss, da er nur auf den (public) operator+= zugreift und auf keinerlei private members. Wundert mich nur, dass er mir da die Fehlermeldung rausgibt - vielleicht ein Fehler an anderer Stelle. Danke für den link</p>
</blockquote>
<p>Die Lösung steht im Link ;), verfolge den Link in meinem Link, dann kommt ne genauere Antwort darauf ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1309259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1309259</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 19 Jun 2007 16:04:45 GMT</pubDate></item></channel></rss>