<?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;gt;&amp;gt; überladen]]></title><description><![CDATA[<p>Hallo,</p>
<p>es geht um folgendes</p>
<p>Ich habe ein:</p>
<pre><code>struct Date{
	int day;
	int mon;
	int year;
};
</code></pre>
<p>Dafür will ich die Operatoren &lt;&lt; und &gt;&gt; überladen.</p>
<pre><code>ostream&amp; operator&lt;&lt;(ostream&amp; o, const Date&amp; d){
	return o &lt;&lt; d.day &lt;&lt; &quot;-&quot; &lt;&lt; d.mon &lt;&lt; &quot;-&quot; &lt;&lt; d.year &lt;&lt; endl;
};	

istream&amp; operator&gt;&gt;(istream&amp; i, const Date&amp; d){
	return i &gt;&gt; d.day &gt;&gt; &quot;-&quot; &gt;&gt; d.mon &gt;&gt; &quot;-&quot; &gt;&gt; d.year;
};
</code></pre>
<p>Allerdings lässt sich die zweite Funktion nicht compilieren und mit der cryptischen Fehlermeldung kann ich nicht anfangen:</p>
<blockquote>
<p>main.cpp: In function »std::istream&amp; operator&gt;&gt;(std::istream&amp;, const Date&amp;)«:<br />
main.cpp:66: Fehler: ambiguous overload für »operator&gt;&gt;« in »i &gt;&gt; d-&gt;Date::day«<br />
/usr/include/c++/4.1.3/istream:131: Anmerkung: Kandidaten sind: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_istream&lt;_CharT, _Traits&gt;&amp; (<em>)(std::basic_istream&lt;_CharT, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;<br />
/usr/include/c++/4.1.3/istream:134: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_ios&lt;_CharT, _Traits&gt;&amp; (</em>)(std::basic_ios&lt;_CharT, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;<br />
/usr/include/c++/4.1.3/istream:137: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::ios_base&amp; (<em>)(std::ios_base&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;<br />
/usr/include/c++/4.1.3/istream:230: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_streambuf&lt;_CharT, _Traits&gt;</em>) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;</p>
</blockquote>
<p>Kann mir einer sagen was ich da falsch mache??!!</p>
<p>Meine zweite Frage ist wie das Überladen für &lt;&lt; und &gt;&gt; aussehen muss, wenn ich nicht cin und cout benutzte sondern ifstream, ofstream und/oder fstream??</p>
<p>Danke schon mal im vorraus.</p>
<p>Mfg cpt.hawk</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/226457/operator-gt-gt-überladen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 18:59:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/226457.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Nov 2008 14:15:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sat, 01 Nov 2008 14:15:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>es geht um folgendes</p>
<p>Ich habe ein:</p>
<pre><code>struct Date{
	int day;
	int mon;
	int year;
};
</code></pre>
<p>Dafür will ich die Operatoren &lt;&lt; und &gt;&gt; überladen.</p>
<pre><code>ostream&amp; operator&lt;&lt;(ostream&amp; o, const Date&amp; d){
	return o &lt;&lt; d.day &lt;&lt; &quot;-&quot; &lt;&lt; d.mon &lt;&lt; &quot;-&quot; &lt;&lt; d.year &lt;&lt; endl;
};	

istream&amp; operator&gt;&gt;(istream&amp; i, const Date&amp; d){
	return i &gt;&gt; d.day &gt;&gt; &quot;-&quot; &gt;&gt; d.mon &gt;&gt; &quot;-&quot; &gt;&gt; d.year;
};
</code></pre>
<p>Allerdings lässt sich die zweite Funktion nicht compilieren und mit der cryptischen Fehlermeldung kann ich nicht anfangen:</p>
<blockquote>
<p>main.cpp: In function »std::istream&amp; operator&gt;&gt;(std::istream&amp;, const Date&amp;)«:<br />
main.cpp:66: Fehler: ambiguous overload für »operator&gt;&gt;« in »i &gt;&gt; d-&gt;Date::day«<br />
/usr/include/c++/4.1.3/istream:131: Anmerkung: Kandidaten sind: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_istream&lt;_CharT, _Traits&gt;&amp; (<em>)(std::basic_istream&lt;_CharT, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;<br />
/usr/include/c++/4.1.3/istream:134: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_ios&lt;_CharT, _Traits&gt;&amp; (</em>)(std::basic_ios&lt;_CharT, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;<br />
/usr/include/c++/4.1.3/istream:137: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::ios_base&amp; (<em>)(std::ios_base&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;<br />
/usr/include/c++/4.1.3/istream:230: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_streambuf&lt;_CharT, _Traits&gt;</em>) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;] &lt;nahe Übereinstimmung&gt;</p>
</blockquote>
<p>Kann mir einer sagen was ich da falsch mache??!!</p>
<p>Meine zweite Frage ist wie das Überladen für &lt;&lt; und &gt;&gt; aussehen muss, wenn ich nicht cin und cout benutzte sondern ifstream, ofstream und/oder fstream??</p>
<p>Danke schon mal im vorraus.</p>
<p>Mfg cpt.hawk</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608551</guid><dc:creator><![CDATA[cpt.hawk]]></dc:creator><pubDate>Sat, 01 Nov 2008 14:15:36 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sat, 01 Nov 2008 14:35:11 GMT]]></title><description><![CDATA[<p>Habe mir jetzt nicht die Fehlermeldung angeschaut, sondern deinen Code und darin einen Fehler gefunden:</p>
<pre><code class="language-cpp">istream&amp; operator&gt;&gt;(istream&amp; i, const Date&amp; d)
</code></pre>
<p>Sollte dies nicht eher so lauten:</p>
<pre><code class="language-cpp">istream&amp; operator&gt;&gt;(istream&amp; i, Date&amp; d)
</code></pre>
<p>In eine <code>const</code> Objekt kannst du schliesslich nicht schreiben <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>
<p>Zur zweiten Frage:<br />
Musst du nichts ändern. <code>ifstream</code> , <code>ofstream</code> , <code>fstream</code> , <code>istringstream</code> , <code>ostringstream</code> , <code>stringstream</code> usw. haben alle entweder <code>istream</code> , <code>ostream</code> oder beide als Basisklasse(n) <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>
<p>Und noch zwei Bemerkungen:<br />
Es heisst voraus, mit einem r <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 />
Benutze bitte C/C++ Code Tags.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608566</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 01 Nov 2008 14:35:11 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sat, 01 Nov 2008 18:54:50 GMT]]></title><description><![CDATA[<p>Ja das const gehört da nicht hin. Aber es lässt sich immer noch nicht kompilieren:</p>
<p>Ich bekomme jetzt folgende Meldung:</p>
<blockquote>
<p>main.cpp: In function »std::istream&amp; operator&gt;&gt;(std::istream&amp;, Date&amp;)«:<br />
main.cpp:66: Fehler: no match für »operator&gt;&gt;« in »((std::istream*)i)-&gt;std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt; [with _CharT = char, _Traits = std::char_traits&lt;char&gt;](((int&amp;)(&amp; d-&gt;Date::day))) &gt;&gt; &quot;-&quot;«<br />
/usr/include/c++/4.1.3/istream:131: Anmerkung: Kandidaten sind: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_istream&lt;_CharT, _Traits&gt;&amp; (<em>)(std::basic_istream&lt;_CharT, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:134: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_ios&lt;_CharT, _Traits&gt;&amp; (</em>)(std::basic_ios&lt;_CharT, _Traits&gt;&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:137: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::ios_base&amp; (<em>)(std::ios_base&amp;)) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:169: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(bool&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:172: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(short int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:175: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(short unsigned int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:178: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:181: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(unsigned int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:184: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(long int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:187: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(long unsigned int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:191: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(long long int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:194: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(long long unsigned int&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:198: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(float&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:201: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(double&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:204: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(long double&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:207: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(void</em>&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
/usr/include/c++/4.1.3/istream:230: Anmerkung: std::basic_istream&lt;_CharT, _Traits&gt;&amp; std::basic_istream&lt;_CharT, _Traits&gt;::operator&gt;&gt;(std::basic_streambuf&lt;_CharT, _Traits&gt;*) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;]<br />
main.cpp:65: Anmerkung: std::istream&amp; operator&gt;&gt;(std::istream&amp;, Date&amp;)</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1608707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608707</guid><dc:creator><![CDATA[cpt.hawk]]></dc:creator><pubDate>Sat, 01 Nov 2008 18:54:50 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sun, 02 Nov 2008 11:29:54 GMT]]></title><description><![CDATA[<p>Namespaces angegeben?</p>
<pre><code class="language-cpp">std::istream&amp; operator&gt;&gt;(std::istream&amp; i, Date&amp; d)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1608891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608891</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 02 Nov 2008 11:29:54 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sun, 02 Nov 2008 11:50:10 GMT]]></title><description><![CDATA[<p>Nein das ist es nicht. Am Anfang des Code steht:</p>
<pre><code class="language-cpp">using namespace std;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1608905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608905</guid><dc:creator><![CDATA[cpt.hawk]]></dc:creator><pubDate>Sun, 02 Nov 2008 11:50:10 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sun, 02 Nov 2008 12:04:42 GMT]]></title><description><![CDATA[<p>cpt.hawk schrieb:</p>
<blockquote>
<p>Nein das ist es nicht. Am Anfang des Code steht:</p>
<pre><code class="language-cpp">using namespace std;
</code></pre>
</blockquote>
<p>Nächster Versuch:</p>
<pre><code class="language-cpp">#include &lt;istream&gt;
#include &lt;ostream&gt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1608911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608911</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 02 Nov 2008 12:04:42 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sun, 02 Nov 2008 12:29:15 GMT]]></title><description><![CDATA[<p>Leider auch nichts.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
</code></pre>
<p>hatte ich sowieso drin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608917</guid><dc:creator><![CDATA[cpt.hawk]]></dc:creator><pubDate>Sun, 02 Nov 2008 12:29:15 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sun, 02 Nov 2008 12:42:57 GMT]]></title><description><![CDATA[<p>cpt.hawk schrieb:</p>
<blockquote>
<p>Leider auch nichts.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
</code></pre>
<p>hatte ich sowieso drin.</p>
</blockquote>
<p>Dann schaue ich mir mal den Code an.</p>
<p>Das sollte reichen</p>
<pre><code class="language-cpp">std::istream&amp; operator&gt;&gt;(std::istream&amp; i, Date&amp; d){
	i &gt;&gt; d.day; i.ignore(); i &gt;&gt; d.mon; i.ignore(); i &gt;&gt; d.year;
    return i;
};
</code></pre>
<p>Warum willst du auch etwas in &quot;-&quot; einlesen!? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608925</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 02 Nov 2008 12:42:57 GMT</pubDate></item><item><title><![CDATA[Reply to operator &amp;gt;&amp;gt; überladen on Sun, 02 Nov 2008 12:46:55 GMT]]></title><description><![CDATA[<blockquote>
<p>Warum willst du auch etwas in &quot;-&quot; einlesen!? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Da hast du recht macht eigentlich keinen Sinn.</p>
<pre><code class="language-cpp">std::istream&amp; operator&gt;&gt;(std::istream&amp; i, Date&amp; d){
    i &gt;&gt; d.day; i.ignore(); i &gt;&gt; d.mon; i.ignore(); i &gt;&gt; d.year;
    return i;
};
</code></pre>
<p>So funktioniert es! Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1608926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1608926</guid><dc:creator><![CDATA[cpt.hawk]]></dc:creator><pubDate>Sun, 02 Nov 2008 12:46:55 GMT</pubDate></item></channel></rss>