<?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 mit der friend Funktion]]></title><description><![CDATA[<p>Hallo. ich versuche wieder seit tagen ein programm zum laufen zu bringen:</p>
<p>Das ist meine Headerdatei:</p>
<p>class Date<br />
{<br />
protected:<br />
int day, month, year;<br />
public:<br />
Date(int d, int m, int y)<br />
{<br />
day=d;<br />
month=m;<br />
year=y;<br />
}<br />
friend ostream &amp;operator&lt;&lt;(ostream &amp;os, const Date &amp;dt);<br />
};</p>
<p>von meiner main wollte ich dann wie folgt ausgeben:<br />
...</p>
<p>ostream &amp;operator&lt;&lt;(ostream &amp;os, const GermanDate &amp;dt)<br />
{<br />
return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt; dt.day &lt;&lt;'/'&lt;&lt;dt.month&lt;&lt;'/' &lt;&lt;dt.year&lt;&lt;endl);</p>
<p>}</p>
<p>...<br />
der compiler meckert aber ständig:<br />
F:\C++\Jesosky\Gerdate\date\gerdate.cpp(18) : error C2248: 'day' : cannot access protected member declared in class 'Date'<br />
usw.<br />
über die friend Funktion müsste das doch gehen oder?????????????</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164345/probleme-mit-der-friend-funktion</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 02:57:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164345.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Nov 2006 13:14:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 13:14:31 GMT]]></title><description><![CDATA[<p>Hallo. ich versuche wieder seit tagen ein programm zum laufen zu bringen:</p>
<p>Das ist meine Headerdatei:</p>
<p>class Date<br />
{<br />
protected:<br />
int day, month, year;<br />
public:<br />
Date(int d, int m, int y)<br />
{<br />
day=d;<br />
month=m;<br />
year=y;<br />
}<br />
friend ostream &amp;operator&lt;&lt;(ostream &amp;os, const Date &amp;dt);<br />
};</p>
<p>von meiner main wollte ich dann wie folgt ausgeben:<br />
...</p>
<p>ostream &amp;operator&lt;&lt;(ostream &amp;os, const GermanDate &amp;dt)<br />
{<br />
return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt; dt.day &lt;&lt;'/'&lt;&lt;dt.month&lt;&lt;'/' &lt;&lt;dt.year&lt;&lt;endl);</p>
<p>}</p>
<p>...<br />
der compiler meckert aber ständig:<br />
F:\C++\Jesosky\Gerdate\date\gerdate.cpp(18) : error C2248: 'day' : cannot access protected member declared in class 'Date'<br />
usw.<br />
über die friend Funktion müsste das doch gehen oder?????????????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170444</guid><dc:creator><![CDATA[mark79]]></dc:creator><pubDate>Tue, 07 Nov 2006 13:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 13:17:33 GMT]]></title><description><![CDATA[<p>Der Parameter dt in deinem operator &lt;&lt; ist allerdings nicht vom Typ 'Date' sondern 'GermanDate'.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170448</guid><dc:creator><![CDATA[Der Meister]]></dc:creator><pubDate>Tue, 07 Nov 2006 13:17:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 13:24:56 GMT]]></title><description><![CDATA[<p>Oh ja..Sorry.<br />
Nur falsch rauskopiert. das Problem bleibt aber trotzdem <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/1170457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170457</guid><dc:creator><![CDATA[mark79]]></dc:creator><pubDate>Tue, 07 Nov 2006 13:24:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 13:36:37 GMT]]></title><description><![CDATA[<p>Hast du da eine using-Direktive in deiner Headerdatei?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170465</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 07 Nov 2006 13:36:37 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 15:11:01 GMT]]></title><description><![CDATA[<p>Ja habe ich.</p>
<p>#include&lt;iostream&gt;<br />
using namespace std;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170536</guid><dc:creator><![CDATA[mark79]]></dc:creator><pubDate>Tue, 07 Nov 2006 15:11:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 15:26:41 GMT]]></title><description><![CDATA[<p>mark79 schrieb:</p>
<blockquote>
<p>Ja habe ich.</p>
</blockquote>
<p>Dann nimm die mal raus. Abgesehen davon, dass man so etwas in Headerdateien sowieso nicht tun sollte, glaube ich mich an einen Bug in VC6 zu erinnern, der bei eben solchen Direktiven im Zusammenhang mit friend-Operatoren auftrat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170551</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 07 Nov 2006 15:26:41 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 15:39:07 GMT]]></title><description><![CDATA[<p>also habs rausgenommen. hab aber trotzdem die selben Fehlermeldungen.<br />
könnte es sein das der Konstruktor von mir nicht ganz so passend ist???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170560</guid><dc:creator><![CDATA[mark79]]></dc:creator><pubDate>Tue, 07 Nov 2006 15:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 15:51:52 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also bei mir läuft der Code.<br />
Ich denke, bei Dir liegt der Fehler woanders....</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Date {
protected:
	int day, month, year;
public:
	Date(int d, int m, int y) {day=d;month=m;year=y;}
	friend std::ostream &amp;operator&lt;&lt;(std::ostream &amp;os, const Date &amp;dt);
};

std::ostream &amp;operator&lt;&lt;(std::ostream &amp;os, const Date &amp;dt) {
	return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt; dt.day &lt;&lt;'/'&lt;&lt;dt.month&lt;&lt;'/' &lt;&lt;dt.year&lt;&lt;std::endl);
}

int main()
{
	Date d(1, 2, 3);
	std::cout &lt;&lt; d &lt;&lt; &quot;\n&quot;;
   return 0;
}
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170567</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 07 Nov 2006 15:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 18:01:30 GMT]]></title><description><![CDATA[<p>also das geht leider auch nicht, ich setz mal mein komplettes prog. rein.<br />
sind 2 header und 2 main. das eine main programm ist ein vorgegebenes testprogramm.</p>
<p>#ifndef GermanDate_HPP<br />
#define GermanDate_HPP</p>
<p>class GermanDate:public Date{<br />
private:<br />
static bool longFormat;<br />
public:<br />
GermanDate( int d, int m, int y):Date(d,m,y) {}</p>
<p>static void setLongFormat(bool format = true) {longFormat = format;}</p>
<p>friend ostream &amp;operator&lt;&lt;(ostream &amp;os, const GermanDate &amp;gd);<br />
};</p>
<p>#endif // GermanDate_HPP</p>
<p>......................................................<br />
#ifndef DATE_HPP<br />
#define DATE_HPP</p>
<p>class Date<br />
{<br />
protected:<br />
int day, month, year;<br />
public:<br />
Date(int d, int m, int y)<br />
{<br />
day=d;<br />
month=m;<br />
year=y;<br />
};<br />
friend ostream &amp;operator&lt;&lt;(ostream &amp;os, const Date &amp;dt);<br />
};<br />
#endif // DATE_HPP<br />
...............................................<br />
/*--- #includes der Form &lt;...&gt; ---------------------------------------*/</p>
<p>#include &lt;iostream&gt;<br />
using namespace std;</p>
<p>/*--- #includes der Form &quot;...&quot; ---------------------------------------*/</p>
<p>#include &quot;date.hpp&quot;<br />
#include &quot;gerdate.hpp&quot;</p>
<p>int main(void)<br />
{<br />
GermanDate gd(27, 11, 1999);<br />
const GermanDate cgd(gd);<br />
Date d(gd);<br />
const Date cd(d);</p>
<p>cout &lt;&lt; &quot;Datum: &quot; &lt;&lt; d &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Datum: &quot; &lt;&lt; cd &lt;&lt; endl;</p>
<p>cout &lt;&lt; &quot;Datum (Kurzform): &quot; &lt;&lt; gd &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Datum (Kurzform): &quot; &lt;&lt; cgd &lt;&lt; endl;<br />
GermanDate::setLongFormat();<br />
cout &lt;&lt; &quot;Datum (Langform): &quot; &lt;&lt; gd &lt;&lt; endl;<br />
cout &lt;&lt; &quot;Datum (Langform): &quot; &lt;&lt; cgd &lt;&lt; endl;<br />
}</p>
<p>/* Ausgabe:<br />
------------------------------------------------------------------------<br />
Datum: 11/27/1999<br />
Datum: 11/27/1999<br />
Datum (Kurzform): 27.11.1999<br />
Datum (Kurzform): 27.11.1999<br />
Datum (Langform): 27. November 1999<br />
Datum (Langform): 27. November 1999<br />
----------------------------------------------------------------------*/</p>
<p>....................................................</p>
<p>#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>/*--- #includes der Form &quot;...&quot; ---------------------------------------*/</p>
<p>#include &quot;date.hpp&quot;<br />
#include &quot;gerdate.hpp&quot;</p>
<p>ostream &amp;operator&lt;&lt;(ostream &amp;os, const Date &amp;dt)<br />
{<br />
return os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt; dt.day &lt;&lt;'/'&lt;&lt;dt.month&lt;&lt;'/' &lt;&lt;dt.year&lt;&lt;endl;</p>
<p>}<br />
ostream &amp;operator&lt;&lt;(ostream &amp;os, const GermanDate &amp;gd)<br />
{<br />
if (gd.longFormat==false)<br />
return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt;gd.day&lt;&lt;'.'&lt;&lt;gd.month&lt;&lt;'.' gd.year&lt;&lt;endl);<br />
else<br />
return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt;gd.day&lt;&lt;'.'&lt;&lt;&quot;November&quot;&lt;&lt;'.' gd.year&lt;&lt;endl);<br />
}<br />
bool GermanDate::longFormat=false;</p>
<p>im vorraus schon mal danke für jede Hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170658</guid><dc:creator><![CDATA[mark79]]></dc:creator><pubDate>Tue, 07 Nov 2006 18:01:30 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Tue, 07 Nov 2006 18:35:25 GMT]]></title><description><![CDATA[<p>Wenn using namespace std; vor den Includedirektiven für deine eigenen Headerdateien steht, hat das denselben Effekt, als würde es <em>in</em> diesen Dateien stehen.</p>
<p>Du musst die using-Direktive hinter die Includedirektiven für deine Header stellen (und natürlich dann im Header überall std::ostream schreiben).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170675</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 07 Nov 2006 18:35:25 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Wed, 08 Nov 2006 08:56:34 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>also bei mir läuft das.</p>
<p>(bis auf einen Tippfehler bei Dir: zwei fehlende &quot;&lt;&lt;&quot; in</p>
<p>mark79 schrieb:</p>
<blockquote>
<pre><code>ostream &amp;operator&lt;&lt;(ostream &amp;os, const GermanDate &amp;gd)
{
	if (gd.longFormat==false)
	return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt;gd.day&lt;&lt;'.'&lt;&lt;gd.month&lt;&lt;'.' [u]&lt;&lt;[/u] gd.year&lt;&lt;endl);
	else
	return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt;gd.day&lt;&lt;'.'&lt;&lt;&quot;November&quot;&lt;&lt;'.' [u]&lt;&lt;[/u] gd.year&lt;&lt;endl);
}
</code></pre>
</blockquote>
<p>und ein &quot;return 0;&quot; im main)</p>
<p>Allerdings finde ich keine &quot;... 2 mains ...&quot;, sondern nur ein main und eine Implementierung der &quot;operator&lt;&lt;()'s&quot; ....</p>
<p>Meine Struktur:<br />
- 2 Includes: Date.h, GermanDate.h<br />
- 2 cpps: main.cpp, DateStreams.cpp</p>
<p>Da habe ich nur Deinen Code reinkopiert und schon tuts (g++ (GCC) 3.4.4 und VC++ 6.0) .</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170928</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 08 Nov 2006 08:56:34 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit der friend Funktion on Sat, 11 Nov 2006 14:57:37 GMT]]></title><description><![CDATA[<p>Also, erst mal danke für die hilfe. jetzt klappt alles. hatte danach noch einen fehler...<br />
hab ewig gesucht:<br />
f (gd.longFormat==false)<br />
return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt;gd.day&lt;&lt;'.'&lt;&lt;gd.month&lt;&lt;'.' gd.year&lt;&lt;endl);<br />
else<br />
return (os &lt;&lt;&quot;Datum &quot;&lt;&lt;':' &lt;&lt;gd.day&lt;&lt;'.'&lt;&lt;&quot;November&quot;&lt;&lt;'.' gd.year&lt;&lt;endl);<br />
}</p>
<p>-&gt; &lt;&lt;vor gd.year <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1172529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172529</guid><dc:creator><![CDATA[mark79]]></dc:creator><pubDate>Sat, 11 Nov 2006 14:57:37 GMT</pubDate></item></channel></rss>