<?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-Klasse]]></title><description><![CDATA[<p>Öhm ja... ich hab da auch mal wieder eine Frage^^</p>
<p>Ist es möglich eine enum-klasse zu bauen, die ein Enum vollständig ersetzen kann?</p>
<p>Also anstatt</p>
<pre><code class="language-cpp">enum foo { bla, blubb, wub }
</code></pre>
<p>eine Klasse zu nutzen.</p>
<p>Wenn ja, welche Operatoren müsste ich überladen, und würde sich die Klasse dann auch in switch-statements wie ein enum verhalten bzw. einsetzen lassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183646/enum-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 09:20:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183646.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Jun 2007 04:54:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Enum-Klasse on Thu, 07 Jun 2007 04:54:27 GMT]]></title><description><![CDATA[<p>Öhm ja... ich hab da auch mal wieder eine Frage^^</p>
<p>Ist es möglich eine enum-klasse zu bauen, die ein Enum vollständig ersetzen kann?</p>
<p>Also anstatt</p>
<pre><code class="language-cpp">enum foo { bla, blubb, wub }
</code></pre>
<p>eine Klasse zu nutzen.</p>
<p>Wenn ja, welche Operatoren müsste ich überladen, und würde sich die Klasse dann auch in switch-statements wie ein enum verhalten bzw. einsetzen lassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300454</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Thu, 07 Jun 2007 04:54:27 GMT</pubDate></item><item><title><![CDATA[Reply to Enum-Klasse on Thu, 07 Jun 2007 06:04:03 GMT]]></title><description><![CDATA[<p>Vollständig ersetzen dürfte schwierig werden. Wozu brauchst du das überhaupt? (und was spricht dagegen, einen normalen enum zu verwenden?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300466</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 07 Jun 2007 06:04:03 GMT</pubDate></item><item><title><![CDATA[Reply to Enum-Klasse on Thu, 07 Jun 2007 07:06:26 GMT]]></title><description><![CDATA[<p>Möglich ist es. Den Sinn dahinter sehe ich jetzt auch nicht direkt (außer in Ausnahmen. Folgender modifizierter Code z.B. stammt aus einer Implementierung der Haskell-Prelude in C++):</p>
<pre><code class="language-cpp">struct Ordering {
    static Ordering const Lower;
    static Ordering const Equal;
    static Ordering const Higher;

    bool operator ==(Ordering const&amp; other) { return m_value == other.m_value; }

    bool operator &lt;(Ordering const&amp; other) { return m_value &lt; other.m_value; }

private:
    Ordering(int value) : m_value(value) { }

    int m_value;
};

Ordering const Ordering::Lower(-1);
Ordering const Ordering::Equal(0);
Ordering const Ordering::Higher(1);
</code></pre>
<p>Um das Ding an die C++-Enums anzupassen müssten noch sämtliche Vergleichsoperatoren implementiert werden, außerdem braucht das Ding einen Konstruktor, der ein 'int' akzeptiert sowie einen 'operator int'. Hab ich was vergessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300489</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Thu, 07 Jun 2007 07:06:26 GMT</pubDate></item><item><title><![CDATA[Reply to Enum-Klasse on Thu, 07 Jun 2007 07:15:09 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Möglich ist es. Den Sinn dahinter sehe ich jetzt auch nicht direkt</p>
</blockquote>
<p>enum heißt automatisch int. also typensicherheit zb?<br />
einfach auf die <a href="http://en.wikipedia.org/wiki/C++0x#.E2.80.9Cenum_class.E2.80.9D_.28strongly_typed_enums.29" rel="nofollow">enum classes</a> warten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300495</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Thu, 07 Jun 2007 07:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to Enum-Klasse on Thu, 07 Jun 2007 12:34:32 GMT]]></title><description><![CDATA[<p>queer_boy schrieb:</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Möglich ist es. Den Sinn dahinter sehe ich jetzt auch nicht direkt</p>
</blockquote>
<p>enum heißt automatisch int. also typensicherheit zb?</p>
</blockquote>
<p>Nicht wirklich. Unter C ist ein enum &quot;nur&quot; ein int, unter C++ sind das eigenständige Typen (die Vergleiche und implizite Umwandlung nach int zulassen).</p>
<p>z.B.:</p>
<pre><code class="language-cpp">typedef enum {red,green,blue} color;

color c = red;//klappt
int i = c;    //klappt auch
color c2 = i; //nur unter C erlaubt - unter C++ mußt du explizit casten
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1300706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300706</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 07 Jun 2007 12:34:32 GMT</pubDate></item><item><title><![CDATA[Reply to Enum-Klasse on Thu, 07 Jun 2007 16:25:53 GMT]]></title><description><![CDATA[<p>oh, das habe ich auch gar nicht gemeint, sondern die (un)möglichkeit, &quot;hinter&quot; einem enum etwas anderes als einen int zu haben. hab das nur erst am schluss dazu geschrieben, deshalb passt es vom sinn nicht ganz. das problem mit der impliziten umwandlung meinte ich mit typensicherheit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300865</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Thu, 07 Jun 2007 16:25:53 GMT</pubDate></item></channel></rss>