<?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 + namespace -&amp;gt; richtiger Syntax ?]]></title><description><![CDATA[<p>Tag zusammen,<br />
kurze Frage:<br />
Wie lautet der korrekte Syntax für die friend decleration ?</p>
<pre><code class="language-cpp">namespace MyNamespace
{

class Test
{
private:

	friend std::ostream&amp; operator&lt;&lt;( std::ostream&amp; ostream, const MyNamespace::Test&amp; object );		

	unsigned int m_a;
};

}

std::ostream&amp; operator&lt;&lt;( std::ostream&amp; ostream, const MyNamespace::Test&amp; object )	
{
	ostream &lt;&lt; object.m_a;

	return ostream;
}
</code></pre>
<p>Ohne den namespace klappts, nur mit nicht... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205852/friend-namespace-gt-richtiger-syntax</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 14:22:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205852.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 18 Feb 2008 17:57:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to friend + namespace -&amp;gt; richtiger Syntax ? on Mon, 18 Feb 2008 17:57:52 GMT]]></title><description><![CDATA[<p>Tag zusammen,<br />
kurze Frage:<br />
Wie lautet der korrekte Syntax für die friend decleration ?</p>
<pre><code class="language-cpp">namespace MyNamespace
{

class Test
{
private:

	friend std::ostream&amp; operator&lt;&lt;( std::ostream&amp; ostream, const MyNamespace::Test&amp; object );		

	unsigned int m_a;
};

}

std::ostream&amp; operator&lt;&lt;( std::ostream&amp; ostream, const MyNamespace::Test&amp; object )	
{
	ostream &lt;&lt; object.m_a;

	return ostream;
}
</code></pre>
<p>Ohne den namespace klappts, nur mit nicht... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458352</guid><dc:creator><![CDATA[Der Gast]]></dc:creator><pubDate>Mon, 18 Feb 2008 17:57:52 GMT</pubDate></item><item><title><![CDATA[Reply to friend + namespace -&amp;gt; richtiger Syntax ? on Mon, 18 Feb 2008 18:03:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

namespace MyNamespace
{

class Test
{
private:

    friend std::ostream&amp; operator&lt;&lt;( std::ostream&amp; ostream, const MyNamespace::Test&amp; object );       

    unsigned int m_a;
};

std::ostream&amp; operator&lt;&lt;( std::ostream&amp; ostream, const MyNamespace::Test&amp; object )   
{
    ostream &lt;&lt; object.m_a;

    return ostream;
}

}

int main() {
    MyNamespace::Test t;
    cout&lt;&lt;t&lt;&lt;endl;
}
</code></pre>
<p>Das klappt bei mir ohne Probleme. Was willst du genau erreichen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458355</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 18 Feb 2008 18:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to friend + namespace -&amp;gt; richtiger Syntax ? on Mon, 18 Feb 2008 18:13:29 GMT]]></title><description><![CDATA[<p>Ich möchte die Funktion im globalen namespace haben. In deinem Beispiel ist sie ja in den &quot;MyNamespace&quot; gerutscht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458364</guid><dc:creator><![CDATA[Der Gast]]></dc:creator><pubDate>Mon, 18 Feb 2008 18:13:29 GMT</pubDate></item><item><title><![CDATA[Reply to friend + namespace -&amp;gt; richtiger Syntax ? on Mon, 18 Feb 2008 19:19:05 GMT]]></title><description><![CDATA[<p>Der Gast schrieb:</p>
<blockquote>
<p>Ich möchte die Funktion im globalen namespace haben. In deinem Beispiel ist sie ja in den &quot;MyNamespace&quot; gerutscht ?</p>
</blockquote>
<p>Ich weis nicht, ob das überhaupt geht. Mir fällt nichts ein. Warum willst du das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458413</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458413</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 18 Feb 2008 19:19:05 GMT</pubDate></item><item><title><![CDATA[Reply to friend + namespace -&amp;gt; richtiger Syntax ? on Tue, 19 Feb 2008 06:31:04 GMT]]></title><description><![CDATA[<p>Der Gast schrieb:</p>
<blockquote>
<p>Ich möchte die Funktion im globalen namespace haben.</p>
</blockquote>
<p>dann deklariere sie (<em>vorher</em>) im globalen namespace.</p>
<p>nur: warum würdest du das tun wollen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458560</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Tue, 19 Feb 2008 06:31:04 GMT</pubDate></item><item><title><![CDATA[Reply to friend + namespace -&amp;gt; richtiger Syntax ? on Tue, 19 Feb 2008 07:30:11 GMT]]></title><description><![CDATA[<p>Vielleicht gehts ja indem du explizit sagst dass es nicht MyNamespace::operator&lt;&lt; sonder ::operator&lt;&lt; ist: (habs nicht ausprobiert)<br />
Dennoch solltst du alles was zusammengehört auch in den selben ns legen, und der op&lt;&lt; gehört nunmal zum Interface der Klasse und damit in den gleichen ns.</p>
<pre><code class="language-cpp">namespace MyNamespace
{

class Test
{
private:

	friend std::ostream&amp; ::operator&lt;&lt;( std::ostream&amp; ostream, const MyNamespace::Test&amp; object );		// ::operator&lt;&lt;

	unsigned int m_a;
};

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1458579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458579</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 19 Feb 2008 07:30:11 GMT</pubDate></item><item><title><![CDATA[Reply to friend + namespace -&amp;gt; richtiger Syntax ? on Tue, 19 Feb 2008 08:31:26 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Vielleicht gehts ja indem du explizit sagst dass es nicht MyNamespace::operator&lt;&lt; sonder ::operator&lt;&lt; ist: (habs nicht ausprobiert)</p>
</blockquote>
<p>operator&lt;&lt; muss vorher im globalen namespace deklariert worden sein (ansonsten wäre das ill-formed, weil diese form von friend-deklaration keine namen einführen kann (in kein scope, auch nicht versteckt))</p>
<blockquote>
<p>Dennoch solltst du alles was zusammengehört auch in den selben ns legen, und der op&lt;&lt; gehört nunmal zum Interface der Klasse und damit in den gleichen ns.</p>
</blockquote>
<p>das meine ich auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1458608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1458608</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Tue, 19 Feb 2008 08:31:26 GMT</pubDate></item></channel></rss>