<?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[Enum]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Was hätte es für ein Nutzen wen ich ein enum als Rückgabewert einer Methode benutzen würde. Nur ein Beispiel</p>
<pre><code>enum eTest
{
	eRichtig,
	eFalsch,
	eFatalError
};

eTest klasse::methode(int x, int y)
{

// wenn rechnung richtig 
return eRichtig;

//wenn rechnung falsch
return eFalsch;

//wenn alles scheisse 
return FatalError
</code></pre>
<p>;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320320/enum</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 03:50:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320320.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Sep 2013 13:36:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 13:36:36 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Was hätte es für ein Nutzen wen ich ein enum als Rückgabewert einer Methode benutzen würde. Nur ein Beispiel</p>
<pre><code>enum eTest
{
	eRichtig,
	eFalsch,
	eFatalError
};

eTest klasse::methode(int x, int y)
{

// wenn rechnung richtig 
return eRichtig;

//wenn rechnung falsch
return eFalsch;

//wenn alles scheisse 
return FatalError
</code></pre>
<p>;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355152</guid><dc:creator><![CDATA[stackcpu]]></dc:creator><pubDate>Tue, 24 Sep 2013 13:36:36 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 13:41:51 GMT]]></title><description><![CDATA[<p>Du könntest erkennen, ob die Methode erfolgreich war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355156</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Tue, 24 Sep 2013 13:41:51 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 13:43:14 GMT]]></title><description><![CDATA[<blockquote>
<p>Was hätte es für ein Nutzen wen ich ein enum als Rückgabewert einer Methode benutzen würde.</p>
</blockquote>
<p>Die Antwort des dogmatisch durchdesignten C++ (die dadurch aber nicht falsch ist): Keinen, außer eine gewisse Kompatibilität zu C. Für so etwas wurden Exceptions erfunden. enums haben andere Anwendungen und Rückgabewerte sind für Ergebnisse da, nicht für Fehlermeldungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355157</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 Sep 2013 13:43:14 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 13:54:21 GMT]]></title><description><![CDATA[<p>Okey danke vielmals <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/2355164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355164</guid><dc:creator><![CDATA[stackcpu]]></dc:creator><pubDate>Tue, 24 Sep 2013 13:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 14:07:25 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<blockquote>
<p>Was hätte es für ein Nutzen wen ich ein enum als Rückgabewert einer Methode benutzen würde.</p>
</blockquote>
<p>Die Antwort des dogmatisch durchdesignten C++ (die dadurch aber nicht falsch ist): Keinen, außer eine gewisse Kompatibilität zu C. Für so etwas wurden Exceptions erfunden. enums haben andere Anwendungen und Rückgabewerte sind für Ergebnisse da, nicht für Fehlermeldungen.</p>
</blockquote>
<p>Das gilt nur für den Fall, dass das Enum - wie in diesem Beispiel - zum Fehlertransport verwendet wird.</p>
<p>Generell kann es sehr sinnvoll sein, ein enum zurückzugeben:</p>
<pre><code class="language-cpp">enum geschlecht { MANN, FRAU };

geschlecht GeschlechtVon(const Person&amp; person)
{
  if (person.HatShoppingTick())
    return FRAU;

  return MANN;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2355169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355169</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Tue, 24 Sep 2013 14:07:25 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 15:50:21 GMT]]></title><description><![CDATA[<blockquote>
<p>Was hätte es für ein Nutzen wen ich ein enum als Rückgabewert einer Methode benutzen würde.</p>
</blockquote>
<p>Ganz viele. Du könntest zum Beispiel das zurückgegebene Enumerations-Objekt auf seinen Wert prüfen.</p>
<p>In diesem speziellen Fall würde man aber zu Exceptions greifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355209</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 24 Sep 2013 15:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 20:17:36 GMT]]></title><description><![CDATA[<pre><code>enum AmpelPhase
{
  Rot,
  Gruen,
  Gelb
};

AmpelPhase BerechnePhase()
{
  // ...

  if (AndererVerkehrHatVorrang)
    return Rot;

  return Gruen;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2355263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355263</guid><dc:creator><![CDATA[sdfsdf]]></dc:creator><pubDate>Tue, 24 Sep 2013 20:17:36 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 20:35:17 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Für so etwas wurden Exceptions erfunden. enums haben andere Anwendungen und Rückgabewerte sind für Ergebnisse da, nicht für Fehlermeldungen.</p>
</blockquote>
<p>Da muss mindestens noch angemerkt werden, dass manchmal enum/bool als Rückgabewert eine <em>bessere</em> Alternative zu Exceptions sind, wenn man daran interessiert ist, zu wissen, ob es einen Fehlerfall gab. Oft ist das egal und Fehler werden bis zu einem zentralen catch-Block durchgereicht, aber manchmal will man das nicht. Ein direktes <code>try{f();}catch(sth){}</code> ist Zeichen von Java-like Exception-Übernutzung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355266</guid><dc:creator><![CDATA[dogmatiker]]></dc:creator><pubDate>Tue, 24 Sep 2013 20:35:17 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 20:47:26 GMT]]></title><description><![CDATA[<p>dogmatiker schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Für so etwas wurden Exceptions erfunden. enums haben andere Anwendungen und Rückgabewerte sind für Ergebnisse da, nicht für Fehlermeldungen.</p>
</blockquote>
<p>Da muss mindestens noch angemerkt werden, dass manchmal enum/bool als Rückgabewert eine <em>bessere</em> Alternative zu Exceptions sind, wenn man daran interessiert ist, zu wissen, ob es einen Fehlerfall gab. Oft ist das egal und Fehler werden bis zu einem zentralen catch-Block durchgereicht, aber manchmal will man das nicht. Ein direktes <code>try{f();}catch(sth){}</code> ist Zeichen von Java-like Exception-Übernutzung</p>
</blockquote>
<p>Hier muss man aber klar zwischen einer Ausnahme (die eigentlich nicht im Programmablauf vorkommen sollte) und einem erwarteten Ergebnis unterscheiden. Wenn Streams eine Zahl nicht parsen können, dann ist das durchaus erwartet (für spezielle Fälle gibt es auch noch <code>exceptions()</code> ), daher ist der Fehler dort durch einen State ausgedrückt.</p>
<p>Der aber wiederum natürlich keinen Rückgabewert darstellt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355270</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 24 Sep 2013 20:47:26 GMT</pubDate></item><item><title><![CDATA[Reply to Enum on Tue, 24 Sep 2013 21:21:55 GMT]]></title><description><![CDATA[<p>In deinem Beispiel würde ich ein boolean für richtig und falsch zurückgeben und für fatal-error eine exception auslösen.<br />
Beispiel: Die Funktion sagt einer Spielfigur, sie soll zu der Koordinate (x|y) gehen. Der Rückgabewert gibt an, ob die Aktion erfolgt (true) oder der Weg versperrt ist (false), wenn (x|y) aber außerhalb des Spielfelds liegt, sollte mit einer Exception reagiert werden.</p>
<p>Bei C++11 würde ich enum class verwenden, das vermüllt nicht den Scope.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355278</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Tue, 24 Sep 2013 21:21:55 GMT</pubDate></item></channel></rss>