<?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: Methode Rückgabewert als Referenz oder Pointer??]]></title><description><![CDATA[<p>Folgende Konstellation:</p>
<pre><code class="language-cpp">class dummy{

 Foo[2];

  Foo&amp; Get(i);
  //oder
  Foo* Get(i);
};

Foo* Get(int i){

  return &amp;(Foo[i]);

}
//oder
Foo&amp; Get(int i){

  return Foo[i]
}
</code></pre>
<p>wenn ich nun irgendwo im Code aurufe:</p>
<pre><code class="language-cpp">Foo o= Get(0);
o.xxx...
o= Get(1);
o.xxx...
</code></pre>
<p>ist das dann equvalent zu:</p>
<pre><code class="language-cpp">Foo *p= Get(0);
p-&gt;xxx...
p= Get(1);
p-&gt;xxx...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/186442/frage-methode-rückgabewert-als-referenz-oder-pointer</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 08:45:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186442.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Jul 2007 05:55:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 05:55:17 GMT]]></title><description><![CDATA[<p>Folgende Konstellation:</p>
<pre><code class="language-cpp">class dummy{

 Foo[2];

  Foo&amp; Get(i);
  //oder
  Foo* Get(i);
};

Foo* Get(int i){

  return &amp;(Foo[i]);

}
//oder
Foo&amp; Get(int i){

  return Foo[i]
}
</code></pre>
<p>wenn ich nun irgendwo im Code aurufe:</p>
<pre><code class="language-cpp">Foo o= Get(0);
o.xxx...
o= Get(1);
o.xxx...
</code></pre>
<p>ist das dann equvalent zu:</p>
<pre><code class="language-cpp">Foo *p= Get(0);
p-&gt;xxx...
p= Get(1);
p-&gt;xxx...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1321123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321123</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 09 Jul 2007 05:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 06:13:12 GMT]]></title><description><![CDATA[<p>Ich würde nur dann Zeiger verwenden, wenn ich auch vorhabe, NULL-Werte zurückzugeben. Ansonsten nimm lieber Referenzen.</p>
<p>PS: Übrigens kannst du auch <code>d.Get(0).xxx...</code> schreiben, um direkt auf die zurückgegebenen Array-Elemente zuzugreifen <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/1321132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321132</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 09 Jul 2007 06:13:12 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 07:25:26 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>PS: Übrigens kannst du auch <code>d.Get(0).xxx...</code> schreiben, um direkt auf die zurückgegebenen Array-Elemente zuzugreifen <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>Ja, macht der COde ja aber gerade *nicht*. 'Foo o = Get(0)' legt eine Kopie an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321173</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 09 Jul 2007 07:25:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 08:08:35 GMT]]></title><description><![CDATA[<p>Wollte ich auch gerade einwenden. Demnach ist natürlich erst folgendes &quot;equvalent&quot;:</p>
<pre><code class="language-cpp">Foo *p= Get(0);
p-&gt;xxx... // äquivalent zu

Foo&amp; o = Get(0);
o.xxx...

// Und folgendes ist nicht möglich, daher auch nicht äquivalent zu irgendwas
o = Get(1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1321209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321209</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 09 Jul 2007 08:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 08:36:39 GMT]]></title><description><![CDATA[<p>was passiert wenn ich dies machen mit &quot;o&quot;? :</p>
<pre><code class="language-cpp">Foo&amp; o = Get(0);
o.xxx...

// Und folgendes ist nicht möglich, daher auch nicht äquivalent zu irgendwas
o = Get(1);
</code></pre>
<p>wir hier nich die o referenz überschrieben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321222</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 09 Jul 2007 08:36:39 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 08:39:53 GMT]]></title><description><![CDATA[<p>Nein, hier wird der operator= von dem Objekt, auf das o verweist (also Element 0) mit dem Objekt rechts vom = als Argument (also Element 1) aufgerufen. Du würdest also Element 1 auf Element 0 kopieren. Um das nochmal &quot;equvalent&quot; darzustellen:</p>
<pre><code class="language-cpp">Foo&amp; o = Get(0);
o.xxx...
o = Get(1); // ist äquivalent zu
o.operator=(Get(1)); // folglich äquivalent zu
Get(0) = Get(1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1321227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321227</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 09 Jul 2007 08:39:53 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 08:40:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Foo&amp; o = Get(0);
o.xxx...;
</code></pre>
<p>o ist eine Referenz auf das erste Array-Element - und die Auswirkungen von xxx machen sich damit auf das Element bemerkbar.</p>
<pre><code class="language-cpp">o = Get(1);
</code></pre>
<p>Im Gegensatz zu deiner Zeiger-Lösung verbiegt das nicht die Referenz (Referenzen verweisen während ihrer kompletten Lebensdauer auf das <strong>selbe</strong> Objekt), sondern weist dem Objekt hinter o den Inhalt von Get(1) zu - d.h. du überschriebst das erste Array-Element mit dem Inhalt des zweiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1321228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321228</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 09 Jul 2007 08:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage: Methode Rückgabewert als Referenz oder Pointer?? on Mon, 09 Jul 2007 08:46:00 GMT]]></title><description><![CDATA[<p>ok perfekt.. genau das hat mich dieganze zeit verwirrt;) Danke .. habs verstanden..;) <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/1321229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1321229</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 09 Jul 2007 08:46:00 GMT</pubDate></item></channel></rss>