<?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[Frage zu Rückgabe bei Operator überladen []]]></title><description><![CDATA[<p>Ich habe eine Frage zum Überladen des [] Operators.<br />
Habe hierfür ein paar Zeilen Code eingefügt.<br />
Warum muss ich in der Funktion für das Überladen<br />
return feld[neues_feld] zurückgeben und kann nicht<br />
über return *this gehen ?<br />
Bei anderen Operatoren, z.b. -, kann ich doch auch mit return *this<br />
arbeiten.<br />
Bsp.:</p>
<pre><code class="language-cpp">komplex&amp; komplex::operator-(const komplex&amp; k2)
{ 
     rababer rababer...
     return *this;
}
</code></pre>
<p>Hier der eigentliche Code...</p>
<pre><code class="language-cpp">class op
{
	private:
		double *feld;
		int feldlaenge;

	public:
		op(int);
		~op();
		double&amp; operator[](int);
};
</code></pre>
<pre><code class="language-cpp">double&amp; op::operator [](int neues_feld)
{
	feld = new double[neues_feld];
	return feld[neues_feld];

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/138688/frage-zu-rückgabe-bei-operator-überladen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 07:15:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138688.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Feb 2006 14:52:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu Rückgabe bei Operator überladen [] on Tue, 28 Feb 2006 14:52:16 GMT]]></title><description><![CDATA[<p>Ich habe eine Frage zum Überladen des [] Operators.<br />
Habe hierfür ein paar Zeilen Code eingefügt.<br />
Warum muss ich in der Funktion für das Überladen<br />
return feld[neues_feld] zurückgeben und kann nicht<br />
über return *this gehen ?<br />
Bei anderen Operatoren, z.b. -, kann ich doch auch mit return *this<br />
arbeiten.<br />
Bsp.:</p>
<pre><code class="language-cpp">komplex&amp; komplex::operator-(const komplex&amp; k2)
{ 
     rababer rababer...
     return *this;
}
</code></pre>
<p>Hier der eigentliche Code...</p>
<pre><code class="language-cpp">class op
{
	private:
		double *feld;
		int feldlaenge;

	public:
		op(int);
		~op();
		double&amp; operator[](int);
};
</code></pre>
<pre><code class="language-cpp">double&amp; op::operator [](int neues_feld)
{
	feld = new double[neues_feld];
	return feld[neues_feld];

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1005113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005113</guid><dc:creator><![CDATA[c-mos]]></dc:creator><pubDate>Tue, 28 Feb 2006 14:52:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabe bei Operator überladen [] on Tue, 28 Feb 2006 20:27:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ist zwar das falsche Sub-Forum, aber whatever...</p>
<p>c-mos schrieb:</p>
<blockquote>
<pre><code class="language-cpp">double&amp; op::operator [](int neues_feld)
{
	feld = new double[neues_feld];
	return feld[neues_feld];

}
</code></pre>
</blockquote>
<p>blub? Was treibst du da? Operatoren sollten so überladen werden, wie sie auch für eingebaute Typen benutzt werden, in dem Fall als Index-Operator:</p>
<pre><code class="language-cpp">//int Vector
class Vector {
  size_t len;
  int *x;

public:
  Vector(size_t len_=0) : len(len_) x(new int[len]) {}

  Vector(const Vector &amp;v) : len(v.len), x(new int[len]) {
    for (int i=0;i&lt;len;++i)
      x[i] = v.x[i];
  }

  ~Vector() { delete [] x; }

  int size() { return len; }

  //Zuweisungs-op
  Vector&amp; operator=(const Vector &amp;v) {
    if (this == &amp;v)  //Selbstzuweisung?
      return *this;

    if (len != v.len) {  //Evtl. kann ich löschen und neuallokieren einsparen, wenn die Länge gleich ist
      delete [] x;
      len = v.len;
      x = new int[len];
    }

    for (int i=0;i&lt;len;++i)  //rüberkopieren
      x[i] = v.x[i];

    return *this;
  }

  //Gibt eine Referenz auf den Wert an 'index' zurück
  int&amp; operator[](int index) {
    return x[index];
  }

  //Gibt eine konstante Referenz auf den Wert an 'index' zurück, für konstante Vectors
  const int&amp; operator[](int index) const {
    return x[index];
  }
}
</code></pre>
<p>Hilft das?</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1005498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1005498</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Tue, 28 Feb 2006 20:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu Rückgabe bei Operator überladen [] on Thu, 02 Mar 2006 18:04:24 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=2822" rel="nofollow">SideWinder</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=13" rel="nofollow">DOS und Win32-Konsole</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/1007014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1007014</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Thu, 02 Mar 2006 18:04:24 GMT</pubDate></item></channel></rss>