<?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[operator &amp;lt;&amp;lt; überladen *help*]]></title><description><![CDATA[<p>hallo;<br />
ich habe ein problem;<br />
cih willd en operator der klasse cout ü+berladen (&lt;&lt;)<br />
da der aber alles nach hinten durchschiebt geht das nicht so einfach.<br />
könnt ihr mir sagen, wie ich die funktion programmieren muss?<br />
meine klasse:</p>
<pre><code class="language-cpp">private:
  	int tag, std, min, sec;

 public:
         tUhrzeit(int std, int min, int sec);
	void normalisiere();
         void set_std(int std);
	void set_min(int min);
	void set_sec(int sec);
         int get_std(){return std;};
	int get_min(){return min;};
	int get_sec(){return sec;};
.
.
.

         ostream &amp;operator &lt;&lt; (tUhrzeit h); // ist das auch richtig deklariert?

};

ostream tUhrzeit::&amp;operator &lt;&lt;(tUhrzeit h)
{
 /*
 // 1:05:03 als besipiel ausgabe;
*/
}
</code></pre>
<p>ich wil dan in main() zum beispiel einfach schreiben können:</p>
<pre><code class="language-cpp">void main()
{
 tUhrzeit t1;
 cout &lt;&lt; t1;
}
</code></pre>
<p>könnt ihr mir da vielleicht helfen?<br />
das wäre super lieb.<br />
danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127375/operator-lt-lt-überladen-help</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 03:18:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127375.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Nov 2005 17:07:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Wed, 23 Nov 2005 17:07:03 GMT]]></title><description><![CDATA[<p>hallo;<br />
ich habe ein problem;<br />
cih willd en operator der klasse cout ü+berladen (&lt;&lt;)<br />
da der aber alles nach hinten durchschiebt geht das nicht so einfach.<br />
könnt ihr mir sagen, wie ich die funktion programmieren muss?<br />
meine klasse:</p>
<pre><code class="language-cpp">private:
  	int tag, std, min, sec;

 public:
         tUhrzeit(int std, int min, int sec);
	void normalisiere();
         void set_std(int std);
	void set_min(int min);
	void set_sec(int sec);
         int get_std(){return std;};
	int get_min(){return min;};
	int get_sec(){return sec;};
.
.
.

         ostream &amp;operator &lt;&lt; (tUhrzeit h); // ist das auch richtig deklariert?

};

ostream tUhrzeit::&amp;operator &lt;&lt;(tUhrzeit h)
{
 /*
 // 1:05:03 als besipiel ausgabe;
*/
}
</code></pre>
<p>ich wil dan in main() zum beispiel einfach schreiben können:</p>
<pre><code class="language-cpp">void main()
{
 tUhrzeit t1;
 cout &lt;&lt; t1;
}
</code></pre>
<p>könnt ihr mir da vielleicht helfen?<br />
das wäre super lieb.<br />
danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925483</guid><dc:creator><![CDATA[dern00b]]></dc:creator><pubDate>Wed, 23 Nov 2005 17:07:03 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Wed, 23 Nov 2005 18:05:04 GMT]]></title><description><![CDATA[<p>den mußt du als globale Funktion überladen:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;(ostream&amp; in,const tUhrzeit&amp; zeit)
{
  //..
  return in;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/925540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925540</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 23 Nov 2005 18:05:04 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Wed, 23 Nov 2005 19:28:47 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>den mußt du als globale Funktion überladen:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;(ostream&amp; in,const tUhrzeit&amp; zeit)
{
  //..
  return in;
}
</code></pre>
</blockquote>
<p>ähm joa;<br />
also was schreibe ich denn dann in der funktion?</p>
<p>in+=zeit.get_std();<br />
in+= &quot;:&quot;;<br />
in+=zeit.get_min();<br />
in+=&quot;:&quot;;<br />
in+=zeit.get_sec();</p>
<p>oder wie?<br />
hättest da mal kot? :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925621</guid><dc:creator><![CDATA[dern00b]]></dc:creator><pubDate>Wed, 23 Nov 2005 19:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Wed, 23 Nov 2005 21:29:32 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=437" rel="nofollow">Jansen</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=2" rel="nofollow">VCL/CLX (Borland C++ Builder)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/925738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925738</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Wed, 23 Nov 2005 21:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Wed, 23 Nov 2005 23:17:06 GMT]]></title><description><![CDATA[<p>Du musst zunächst die Funktion als friend innerhalb Deiner Klasse deklarieren, damit der Compiler das auch als Funktion erkennt.</p>
<pre><code class="language-cpp">class tUhrzeit
{
    ...
    friend ostream&amp; operator&lt;&lt;( ostream&amp; out, const tUhrzeit&amp; zeit );
};
</code></pre>
<p>innerhalb der Funktion kannst Du dann auf die private Member zugreifen. z.B.:</p>
<pre><code class="language-cpp">ostream&amp; operator&lt;&lt;( ostream&amp; out, const tUhrzeit&amp; zeit )
{
    const char* tage[] = {&quot;Mo&quot;, &quot;Di&quot;, &quot;Mi&quot;, &quot;Do&quot;, &quot;Fr&quot;, &quot;Sa&quot;, &quot;So&quot; };
    return out &lt;&lt; tage[zeit.tag] &lt;&lt; &quot; &quot; &lt;&lt; zeit.std &lt;&lt; &quot;:&quot; &lt;&lt; zeit.min &lt;&lt; &quot;:&quot; &lt;&lt; zeit.sec;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925775</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Wed, 23 Nov 2005 23:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 00:00:07 GMT]]></title><description><![CDATA[<p>Ich kann diesen Artikel sehr empfehlen, da er genau das Thema behandelt (auch wenn es zu Anfang nicht so ausschaut):<br />
<a href="http://www.artima.com/cppsource/streamstrings.html" rel="nofollow">http://www.artima.com/cppsource/streamstrings.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/925788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925788</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 24 Nov 2005 00:00:07 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 07:20:05 GMT]]></title><description><![CDATA[<p>Es gibt keinen Grund, die Funktion als friend zu deklarieren. Solange du über das öffentliche Interface an die Daten kommst, was ja bei tUhrzeit der Fall ist, sollte dieses verwendet werden.</p>
<p>Gruß</p>
<p>Tommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925831</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Thu, 24 Nov 2005 07:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 07:36:22 GMT]]></title><description><![CDATA[<p>Es gibt auch keinen Grund, die Funktion nicht als friend zu deklarieren - zumindest wenn du per Direktzugriff schneller an deine Daten kommst als über das Interface, ist das von Vorteil <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/925839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925839</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 24 Nov 2005 07:36:22 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 09:08:23 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Es gibt auch keinen Grund, die Funktion nicht als friend zu deklarieren - zumindest wenn du per Direktzugriff schneller an deine Daten kommst als über das Interface, ist das von Vorteil <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="😉"
    /></p>
</blockquote>
<p><a href="http://de.wikipedia.org/wiki/Datenkapselung" rel="nofollow">Grund</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/925896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925896</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 24 Nov 2005 09:08:23 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 09:14:58 GMT]]></title><description><![CDATA[<p>Der &quot;Grund&quot; ist Käse - auch friend-Funktionen gehören zum Interface der Klasse (siehe z.B. <a href="http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2" rel="nofollow">C++ FAQ</a>).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925904</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 24 Nov 2005 09:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 09:49:16 GMT]]></title><description><![CDATA[<p>CStoll (off) schrieb:</p>
<blockquote>
<p>Der &quot;Grund&quot; ist Käse - auch friend-Funktionen gehören zum Interface der Klasse (siehe z.B. <a href="http://www.parashift.com/c++-faq-lite/friends.html#faq-14.2" rel="nofollow">C++ FAQ</a>).</p>
</blockquote>
<p>Ich stimme mit dem von dir verlinkten Text vollkommen überein. Könntest du mir kurz erläutern wie er deiner Ansicht nach ein Gegenargument zu dem von mir genannten Grund darstellt?</p>
<p>Und bezüglich &quot;auch friend-Funktionen gehören zum Interface der Klasse&quot;: was genau willst du damit aussagen? Dass friend-Funktionen zum Interface der Klasse gehören? Schön, und weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925923</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 24 Nov 2005 09:49:16 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 10:07:00 GMT]]></title><description><![CDATA[<p>Kurz gesagt - friend-Funktionen sind ein Teil der Klasse, gehören also auch zur Implementation. Und normalerweise schreibst du die Funktionen/Klassen auch selber, denen du friend-Zugriff geben willst. Also kannst du auch kontrollieren, was sie mit deinen Daten machen -&gt; friend-Zugriff beeinflußt die Datenkapselung <strong>überhaupt nicht</strong>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925934</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 24 Nov 2005 10:07:00 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 10:24:40 GMT]]></title><description><![CDATA[<p>Ich glaube, das Gengenargument besteht darin, dass dern00b den Operator als Member definieren wollte, dies aber nicht erlaubt ist.<br />
Es besteht für ihn der Zwang das gewünschte Interface der Klasse aufzusplitten. Der &lt;&lt; Operator soll oft Dinge, die privat bleiben sollen, zu Serialisierungszwecken auslesen dürfen. Wenn es sowieso öffentliche Ausleseschnittstellen für alle benötigten Daten gibt, sollte man den Operator aber nur zum friend machen, falls er sich der Zugriffskontrolle der Ausleseschnittstellen (und somit der <strong>vorgesehenen Kapselung</strong>) entziehen, und selbst eine spezielle, direkte Schnittstelle auf die privaten Daten bilden soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925941</guid><dc:creator><![CDATA[Spezi L]]></dc:creator><pubDate>Thu, 24 Nov 2005 10:24:40 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 10:51:08 GMT]]></title><description><![CDATA[<p>danke für eure hilfe - werde es ausprobieren was so empfohlen wurde wenn es nciht klappt melde ich mich wieder</p>
<p>T I M</p>
]]></description><link>https://www.c-plusplus.net/forum/post/925951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/925951</guid><dc:creator><![CDATA[dern00b]]></dc:creator><pubDate>Thu, 24 Nov 2005 10:51:08 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 18:46:29 GMT]]></title><description><![CDATA[<p>die ganze kacke eght icht, weil der compiler sagt das ich die funktion &lt;&lt; nur mit einer übergabevariable deklarieren darf.</p>
<p>nun habe ich alles ausprobiert.<br />
mir kommt es nicht wirklich auf die funktion mit inhalt an - aber bei jeder deklaration geht das nicht.<br />
bsp<br />
...<br />
main()<br />
tUhrzeit t1;<br />
cout &lt;&lt; t1;</p>
<p>dann sagt er immer illegal structur glaube ich.... ich kriege das kotzen. meine genialen lehrer wissen das nicht mal... voll die n00bs</p>
<p>help me... probiert es mal selber kurz aus - voll der shit</p>
<p>T I M</p>
]]></description><link>https://www.c-plusplus.net/forum/post/926388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926388</guid><dc:creator><![CDATA[dern00b]]></dc:creator><pubDate>Thu, 24 Nov 2005 18:46:29 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;lt;&amp;lt; überladen *help* on Thu, 24 Nov 2005 19:10:30 GMT]]></title><description><![CDATA[<p>komisch. bei mir geht's:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
#include &lt;ctime&gt;

using namespace std;

class Uhrzeit
{
private:
      int m_std, m_min, m_sek;

public:
    Uhrzeit(int std, int min, int sek)
        : m_std(std), m_min(min), m_sek(sek)
    {}
    Uhrzeit()
    {
        time_t sekSeit1970 = time(0);
        tm *datum = localtime(&amp;sekSeit1970);

        m_sek = datum-&gt;tm_sec;
        m_min = datum-&gt;tm_min;
        m_std = datum-&gt;tm_hour;
    }

    friend ostream &amp;operator&lt;&lt;(ostream &amp; output, const Uhrzeit &amp;zeit);
};

ostream &amp;operator&lt;&lt;(ostream &amp; output, const Uhrzeit &amp;zeit)
{
    return output &lt;&lt; zeit.m_std &lt;&lt; &quot;:&quot;
        &lt;&lt; setw(2) &lt;&lt; setfill('0') &lt;&lt; zeit.m_min &lt;&lt; &quot;:&quot;
        &lt;&lt; setw(2) &lt;&lt; setfill('0') &lt;&lt; zeit.m_sek &lt;&lt; &quot; Uhr&quot;;
}

int main()
{
    Uhrzeit jetzt;
    cout &lt;&lt; &quot;Es ist &quot; &lt;&lt; jetzt &lt;&lt; endl;
    cin.get();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/926402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/926402</guid><dc:creator><![CDATA[schorsch code]]></dc:creator><pubDate>Thu, 24 Nov 2005 19:10:30 GMT</pubDate></item></channel></rss>