<?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[Designfrage: Mehrere Variablen zurückgeben]]></title><description><![CDATA[<p>Ich möchte mal wissen, was guter Stil ist, wenn man mehrere Variablen zurückgeben möchte:</p>
<p>Überschreibt ihr die Variablen per Ref?<br />
Macht ihr dafür eine eigene Struct/Klasse?<br />
Setzt ihr alles in ein Array?<br />
... oder ganz was anderes?</p>
<p>Da ich auch in einem sauberen Stil schreiben möchte, würde mich interessieren, wie ihr das angeht. Gibts da eine Regel für oder ist das nur Geschmackssache?</p>
<p>Vielen Dank! <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/topic/324112/designfrage-mehrere-variablen-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 20:26:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324112.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Mar 2014 16:11:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Mon, 03 Mar 2014 16:11:30 GMT]]></title><description><![CDATA[<p>Ich möchte mal wissen, was guter Stil ist, wenn man mehrere Variablen zurückgeben möchte:</p>
<p>Überschreibt ihr die Variablen per Ref?<br />
Macht ihr dafür eine eigene Struct/Klasse?<br />
Setzt ihr alles in ein Array?<br />
... oder ganz was anderes?</p>
<p>Da ich auch in einem sauberen Stil schreiben möchte, würde mich interessieren, wie ihr das angeht. Gibts da eine Regel für oder ist das nur Geschmackssache?</p>
<p>Vielen Dank! <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/2386324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386324</guid><dc:creator><![CDATA[Lymogry]]></dc:creator><pubDate>Mon, 03 Mar 2014 16:11:30 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Mon, 03 Mar 2014 16:23:55 GMT]]></title><description><![CDATA[<p>Kommt drauf an, und zwar auf Anzahl, Komplexitaet, Interface, Caching, ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386326</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Mon, 03 Mar 2014 16:23:55 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Mon, 03 Mar 2014 16:35:17 GMT]]></title><description><![CDATA[<p>Die sauberste Variante ist mMn. nen Struct zurückzugeben.<br />
Je nachdem was man zurückgibt sind auch Output-Parameter (Referenz) OK.</p>
<p>Und ganz ganz selten bietet sich mal <code>std::pair</code> bzw. <code>tuble</code> an. Mach ich aber echt nur wenn ganz klar was <code>first</code> und <code>second</code> bedeutet. Also wenn z.B. ich ne Iterator-Range zurückgebe ( <code>first</code> = begin, <code>second</code> = end). Sonst lieber ne eigene Struct. Dann haben die Dinger nen Namen, und es kommt zu <s>keinen</s> weniger Misverständnissen (bzw. man ist allgemein beim Lesen schneller).</p>
<p>ps: Wenn Performance ne Rolle spielt, dann stellt sich die Frage danach was &quot;sauber&quot; ist mMn. nicht mehr. Dann ist eher die Frage was weniger unsauber ist. Meine Antwort bezieht sich auf Fälle wo Performance weniger ein Thema ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386333</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 03 Mar 2014 16:35:17 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Mon, 03 Mar 2014 22:33:47 GMT]]></title><description><![CDATA[<p>Sowohl wenn man mehrere Werte zurück gibt, als auch übergibt, eignet sich dafür ein Struct.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386419</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 03 Mar 2014 22:33:47 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Tue, 04 Mar 2014 00:39:03 GMT]]></title><description><![CDATA[<p>Sollte es sich um mehrer, logisch nicht eng zusammengehörende Werte handeln, ist die Kombination aus <code>std::tuple</code> und <code>std::tie</code> auch nicht so übel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386447</guid><dc:creator><![CDATA[ScottZhang]]></dc:creator><pubDate>Tue, 04 Mar 2014 00:39:03 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Tue, 04 Mar 2014 08:07:28 GMT]]></title><description><![CDATA[<p>Lymogry schrieb:</p>
<blockquote>
<p>Ich möchte mal wissen, was guter Stil ist, wenn man mehrere Variablen zurückgeben möchte:</p>
</blockquote>
<p>IMHO ist es guter Stil, wenn eine solche Situation gar nicht erst auftritt - Ok - es gibt immer Ausnahmen <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>Lymogry schrieb:</p>
<blockquote>
<p>Überschreibt ihr die Variablen per Ref?</p>
</blockquote>
<p>wäre eine Möglichkeit, wenn es wenige sind warum nicht.</p>
<p>Lymogry schrieb:</p>
<blockquote>
<p>Macht ihr dafür eine eigene Struct/Klasse?</p>
</blockquote>
<p>Das ist die Frage: warum sind sie nicht schon in einer eigenen Struct/Class zusammen gefasst? Das lässt sich aber pauschal kaum beantworten.</p>
<p>Was sind das für Variablen und was macht die Funktion, die sie zurück gibt? Wie stark ist die Kohäsion zwischen den Variablen? Lassen sich die einzelnen Variablen auch von einzelnen Funktionen/Algorithmen bestimmen? Macht es Sinn die Funktion als Methode einer Klasse schreiben und die Variablen wären dann Member dieser Klasse? Sind alle Variablen von gleichem Typ - wäre eine Container oder Output-Iterator sinnvoll?</p>
<p>Ich denke, es ist einfacher zu diskutieren, wenn Du konkreter wirst und uns ein konkretes Beispiel vorlegst.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386458</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 04 Mar 2014 08:07:28 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Wed, 05 Mar 2014 14:58:00 GMT]]></title><description><![CDATA[<p>Da gibt es nichts Konkretes. Ich machs mal so, mal so. Aber bisher musste nur ich damit klar kommen.</p>
<p>Wenn mehrere Leute an einem Programm arbeiten, sollte es aber übersichtlich bleiben.<br />
Also stößt euch da nichts wirklich auf...</p>
<p>Schonmal Danke für die Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2386851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2386851</guid><dc:creator><![CDATA[Lymogry]]></dc:creator><pubDate>Wed, 05 Mar 2014 14:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Thu, 06 Mar 2014 08:04:06 GMT]]></title><description><![CDATA[<p>Gib ein tuple zurueck und benutz dann pattern matching:</p>
<pre><code>foo :: Int -&gt; (Int, Int)
foo a = (a+1, a+2)

main :: IO ()
main = do
  let (x,y) = foo 1
  print x
  print y
</code></pre>
<p><a href="http://codepad.org/qNaIAI6T" rel="nofollow">http://codepad.org/qNaIAI6T</a></p>
<p>PS: Oh, sorry, falsches Forum. Ja ok, in einer so behinderten Sprache wie C++ gehen nur nervtötende Dinge wie std::pair, struct, call by ref usw.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2387040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2387040</guid><dc:creator><![CDATA[tuple pattern matching]]></dc:creator><pubDate>Thu, 06 Mar 2014 08:04:06 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Thu, 06 Mar 2014 08:10:30 GMT]]></title><description><![CDATA[<p>tuple pattern matching schrieb:</p>
<blockquote>
<p>PS: Oh, sorry, falsches Forum.</p>
</blockquote>
<p>Kann ja mal passieren. FTFY</p>
<pre><code class="language-cpp">#include &lt;tuple&gt;
#include &lt;iostream&gt;

int main(){
  auto foo = [](int i){ return std::make_tuple(i+1, i+2); };
  int x, y;
  std::tie(x,y)=foo(1);
  std::cout &lt;&lt; x &lt;&lt; ' ' &lt;&lt; y &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2387043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2387043</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Thu, 06 Mar 2014 08:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage: Mehrere Variablen zurückgeben on Thu, 06 Mar 2014 08:32:59 GMT]]></title><description><![CDATA[<p>Oh, tie ist ja nett. Das kannte ich noch gar nicht. Ist zwar immernoch etwas mehr visual noise, aber schon viel besser. Danke für den Hinweis. <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/2387054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2387054</guid><dc:creator><![CDATA[tuple pattern matching]]></dc:creator><pubDate>Thu, 06 Mar 2014 08:32:59 GMT</pubDate></item></channel></rss>