<?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 Überladung]]></title><description><![CDATA[<p>Hallo,<br />
muß ne Aufgabe lösen. Hier ist eine Liste gegeben, die maximal 25 Elemente aufnehmen kann:</p>
<pre><code class="language-cpp">class Liste 
{
public:
  Liste(); // als leere Liste initialisieren
  void read(); // Liste einlesen
  void write() const; // Liste ausgeben
private:
  void insert(int x);
  int a;
  int l[25];
};
</code></pre>
<p>Soweit alles klar <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="🙂"
    /><br />
Nun sollen die Methoden void read() und void write() const durch Operatorenüberladung ersetzt werden, um am Ende die Liste mit Hilfe eben des überladenen Operators zu füllen, wie folgendes Beispiel zeigt:</p>
<pre><code class="language-cpp">int main() 
{
  Liste l;
  cin &gt;&gt; l;
  cout &lt;&lt; l &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>So, jetzt hab ich den Operator '&gt;&gt;' in der Liste folgendermaßen überladen:</p>
<pre><code class="language-cpp">class Liste
{
public:
  ...
  istream&amp; operator&gt;&gt;(Liste&amp; rList);
  ...
};
</code></pre>
<p>Hmm, nur ergibt das für mich irgendwie kein Sinn. Wie soll denn die Liste jetzt gefüllt werden, und mit welchen Werten?!<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="🙄"
    /><br />
Stehe total aufm Schlauch. Soll ich jetzt in einer Schleife die 25 Werte per cin abfragen oder was? Wenn ja, dann kann ich mir die Überladung doch gleich sparen oder so lösen:</p>
<pre><code class="language-cpp">class Liste
{
public:
  ...
  Liste&amp; operator&gt;&gt;(int newWert);
  ...
};
</code></pre>
<p>Wär cool wenn jmd. mal nen Ansatz aufzeigen könnte</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/134708/operator-überladung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 17:30:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134708.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Jan 2006 20:31:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Operator Überladung on Fri, 27 Jan 2006 20:31:49 GMT]]></title><description><![CDATA[<p>Hallo,<br />
muß ne Aufgabe lösen. Hier ist eine Liste gegeben, die maximal 25 Elemente aufnehmen kann:</p>
<pre><code class="language-cpp">class Liste 
{
public:
  Liste(); // als leere Liste initialisieren
  void read(); // Liste einlesen
  void write() const; // Liste ausgeben
private:
  void insert(int x);
  int a;
  int l[25];
};
</code></pre>
<p>Soweit alles klar <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="🙂"
    /><br />
Nun sollen die Methoden void read() und void write() const durch Operatorenüberladung ersetzt werden, um am Ende die Liste mit Hilfe eben des überladenen Operators zu füllen, wie folgendes Beispiel zeigt:</p>
<pre><code class="language-cpp">int main() 
{
  Liste l;
  cin &gt;&gt; l;
  cout &lt;&lt; l &lt;&lt; endl;

  return 0;
}
</code></pre>
<p>So, jetzt hab ich den Operator '&gt;&gt;' in der Liste folgendermaßen überladen:</p>
<pre><code class="language-cpp">class Liste
{
public:
  ...
  istream&amp; operator&gt;&gt;(Liste&amp; rList);
  ...
};
</code></pre>
<p>Hmm, nur ergibt das für mich irgendwie kein Sinn. Wie soll denn die Liste jetzt gefüllt werden, und mit welchen Werten?!<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="🙄"
    /><br />
Stehe total aufm Schlauch. Soll ich jetzt in einer Schleife die 25 Werte per cin abfragen oder was? Wenn ja, dann kann ich mir die Überladung doch gleich sparen oder so lösen:</p>
<pre><code class="language-cpp">class Liste
{
public:
  ...
  Liste&amp; operator&gt;&gt;(int newWert);
  ...
};
</code></pre>
<p>Wär cool wenn jmd. mal nen Ansatz aufzeigen könnte</p>
]]></description><link>https://www.c-plusplus.net/forum/post/978459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978459</guid><dc:creator><![CDATA[Anonymer Alk..äh Frager]]></dc:creator><pubDate>Fri, 27 Jan 2006 20:31:49 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung on Fri, 27 Jan 2006 20:54:05 GMT]]></title><description><![CDATA[<p>Ich würde die Operatoren nicht als Elementfunktionen deklarieren, da sonst IMMER ein Objekt deiner Liste Klasse links vom Operator stehen müsste.<br />
Dann müsstest du z.B. schreiben:</p>
<pre><code class="language-cpp">Liste liste;
liste &gt;&gt; cin;
liste &lt;&lt; cout;
</code></pre>
<p>Das sollte soweit ich weiß zwar funktionieren, aber das entspricht nicht ganz den C++ konventionen. Also sollten die operatoren raus aus der Klasse!<br />
Du könntest schreiben:</p>
<pre><code class="language-cpp">istream&amp; operator&gt;&gt;(istream&amp; input, Liste&amp; liste)
{
//Hier steht dann, wie genau du die Liste mit Daten füllen willst.
input &gt;&gt; data;
return input; // nicht vergessen
}
</code></pre>
<p>In Main musst du dann nur noch das schreiben:</p>
<pre><code class="language-cpp">int main()
{
Liste liste;
cin &gt;&gt; liste;
}
</code></pre>
<p>In dem operator selbst musst du nur schreiben, was du einlesen willst. Also in deinem Fall glaube ich eine anzahl von cin befehlen, mit denen du deine Liste füllst.<br />
Der operator hilft dir nur deien Code in der main funktion zu verkürzen.</p>
<p>PS: Erster Beitrag</p>
]]></description><link>https://www.c-plusplus.net/forum/post/978477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978477</guid><dc:creator><![CDATA[SALOMON]]></dc:creator><pubDate>Fri, 27 Jan 2006 20:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung on Fri, 27 Jan 2006 21:04:04 GMT]]></title><description><![CDATA[<p>Danke Dir,ist ja schon bald peinlich. Dein Code eigentlich glasklar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Irgendwie bin ich heute nicht mehr in der Lage klar zu denken *kopfschüttel*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/978491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978491</guid><dc:creator><![CDATA[Anonymer Alk..äh Frager]]></dc:creator><pubDate>Fri, 27 Jan 2006 21:04:04 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung on Fri, 27 Jan 2006 23:37:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void read(); // Liste einlesen 
void write() const; // Liste ausgeben
</code></pre>
<p>das const ist &quot;verkehrt rum&quot;! es muß so lauten:</p>
<pre><code class="language-cpp">void read() const; // Liste einlesen 
void write(); // Liste ausgeben
</code></pre>
<p>schließlich läßt read() und nicht write() das listen-objekt unverändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/978608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978608</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Fri, 27 Jan 2006 23:37:56 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung on Fri, 27 Jan 2006 23:56:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void read(); // Liste einlesen
void write() const; // Liste ausgeben
</code></pre>
<p>ähem...sollte eigentlich klar sein nach den Kommentaren, das write() die Liste nur ausgibt(und somit <strong>nicht</strong> verändert) wobei der Funktionsname &quot;unglücklich&quot; gewählt wurde</p>
]]></description><link>https://www.c-plusplus.net/forum/post/978619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978619</guid><dc:creator><![CDATA[Angela Mergel]]></dc:creator><pubDate>Fri, 27 Jan 2006 23:56:27 GMT</pubDate></item><item><title><![CDATA[Reply to Operator Überladung on Sat, 28 Jan 2006 09:27:41 GMT]]></title><description><![CDATA[<p>ach so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/978683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/978683</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sat, 28 Jan 2006 09:27:41 GMT</pubDate></item></channel></rss>