<?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[Alternative zu verschachteltem switch]]></title><description><![CDATA[<p>Ich habe eine Methode, die zwei Parameter nimmt und anhand dieser ein Objekt zurueckliefert</p>
<p>das sieht derzeit in etwa so aus:</p>
<pre><code class="language-cpp">MyObject* buildObject( MyEnum value, eStatus status )
{
    // in value steht der Wert, der nachher &quot;erscheinen&quot; muss und status, wie dieser dagestellt werden muss

    switch( value )
    {
    case v1:
        switch( status )
        {
        case s1:
            return new MyObject( &quot;Wert&quot;, 0 );
        case s2:
            return new MyObject( 0, &quot;Wert&quot; );
        case s3:
            return new MyObject( &quot;Wert&quot;, &quot;Wert&quot; );
        }
        break;
    case v2:
        // siehe v1, nur anderer &quot;Wert&quot;
        break;
    // usw
    default:
        return NULL;
    }
}
</code></pre>
<p>das ist natuerlich alles andere als praktisch, wartbar und schoen, aber wie macht man es &quot;besser&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/228666/alternative-zu-verschachteltem-switch</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 10:24:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228666.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Dec 2008 12:49:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Alternative zu verschachteltem switch on Mon, 01 Dec 2008 12:49:47 GMT]]></title><description><![CDATA[<p>Ich habe eine Methode, die zwei Parameter nimmt und anhand dieser ein Objekt zurueckliefert</p>
<p>das sieht derzeit in etwa so aus:</p>
<pre><code class="language-cpp">MyObject* buildObject( MyEnum value, eStatus status )
{
    // in value steht der Wert, der nachher &quot;erscheinen&quot; muss und status, wie dieser dagestellt werden muss

    switch( value )
    {
    case v1:
        switch( status )
        {
        case s1:
            return new MyObject( &quot;Wert&quot;, 0 );
        case s2:
            return new MyObject( 0, &quot;Wert&quot; );
        case s3:
            return new MyObject( &quot;Wert&quot;, &quot;Wert&quot; );
        }
        break;
    case v2:
        // siehe v1, nur anderer &quot;Wert&quot;
        break;
    // usw
    default:
        return NULL;
    }
}
</code></pre>
<p>das ist natuerlich alles andere als praktisch, wartbar und schoen, aber wie macht man es &quot;besser&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1623770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1623770</guid><dc:creator><![CDATA[zwutz]]></dc:creator><pubDate>Mon, 01 Dec 2008 12:49:47 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative zu verschachteltem switch on Mon, 01 Dec 2008 12:55:42 GMT]]></title><description><![CDATA[<p>Naja einfach wäre ein nicht verschachtelter switch.</p>
<pre><code class="language-cpp">MyObject* buildObject( MyEnum value, eStatus status )
{
    // in value steht der Wert, der nachher &quot;erscheinen&quot; muss und status, wie dieser dagestellt werden muss

      std::string wert;

      switch (value)
      {
      case v1:
         wert = &quot;Wert&quot;;
         break;
      case v2:
         wert = &quot;andererWert&quot;;
         break;
      }

      switch( status )
      {
      case s1:
         return new MyObject( wert, 0 );
      case s2:
         return new MyObject( 0, wert );
      case s3:
         return new MyObject( wert, wert );
      }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1623773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1623773</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Mon, 01 Dec 2008 12:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative zu verschachteltem switch on Mon, 01 Dec 2008 14:39:46 GMT]]></title><description><![CDATA[<p>Oder eine std::map. Initialisiert mit den entsprechenden Werten und in der Funktion dann eine simple Abfrage eben jener. Gerade wenn die Werte bekannt sind läßt sich das leicht realisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1623825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1623825</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 01 Dec 2008 14:39:46 GMT</pubDate></item><item><title><![CDATA[Reply to Alternative zu verschachteltem switch on Mon, 01 Dec 2008 21:32:07 GMT]]></title><description><![CDATA[<p>Wobei bei einfachen Enum-Variablen, die linear von Null an durchnummeriert sind, auch ein Array (oder ein Container wie <code>std::tr1::array</code> ) reicht - und sogar noch schneller als eine <code>std::map</code> ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1623998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1623998</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 01 Dec 2008 21:32:07 GMT</pubDate></item></channel></rss>