<?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 zu enum in Klassen]]></title><description><![CDATA[<p>Wenn ich ein enum in einer Klasse mache, wird dass dann für jede Instanz angelegt oder nur einmal pro Klasse? Falls nein bringt das static davor dann was?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/138938/frage-zu-enum-in-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 07:15:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/138938.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Mar 2006 13:24:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu enum in Klassen on Thu, 02 Mar 2006 13:24:16 GMT]]></title><description><![CDATA[<p>Wenn ich ein enum in einer Klasse mache, wird dass dann für jede Instanz angelegt oder nur einmal pro Klasse? Falls nein bringt das static davor dann was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1006780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1006780</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Thu, 02 Mar 2006 13:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu enum in Klassen on Thu, 02 Mar 2006 15:06:58 GMT]]></title><description><![CDATA[<p>Enums werden vom Compiler aufgelöst und durch ihre Konstanten ersetzt (genau wie defines), daher darfst du das ruhig machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1006791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1006791</guid><dc:creator><![CDATA[Neku]]></dc:creator><pubDate>Thu, 02 Mar 2006 15:06:58 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu enum in Klassen on Thu, 02 Mar 2006 13:29:13 GMT]]></title><description><![CDATA[<p>ein enum ist ein Typ (in deinem Fall ein Subtyp der Klasse) - den gibt es nur einmal. Membervariablen mit diesem Typ kann es mehrere geben:</p>
<pre><code class="language-cpp">class tester
{
public:
  enum color {red,green,blue}; //einmalig
private:
  color m_col;                 //unabhängig in jedem Objekt
  static color def_col;        //einmalig für die gesamte Klasse
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1006792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1006792</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 02 Mar 2006 13:29:13 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu enum in Klassen on Thu, 02 Mar 2006 14:52:11 GMT]]></title><description><![CDATA[<p>Ich häng' mich mal an, hoffe der OP hat nichts dagegen. <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>
<p>Wenn ich ein enum wie in CStoll's Beispiel definiere, dann kann ich via tester::red auf die die einzelnen enum-Elemente zugreifen und tester::color als Parameter-Typ verwenden. Wie ist das aber, wenn ich zwei enums mit (teilweise) gleichen Elementen habe? Da meckert der Compiler, weil's doppelt definiert ist, wie löst ihr sowas?</p>
<p>Folgende Ideen hatte ich bereits, finde aber beide nicht schön. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
1. Mit Prefixe (finde ich nicht sehr schön)<br />
2. Ich definiere die enums außerhalb der Klasse in einem eigenen Namespace, z.B. so</p>
<pre><code class="language-cpp">namespace color1 {
    enum type {
      red, green, blue  
    };
}
namespace color2 {
    enum type {
      red, green, blue  
    };
}
</code></pre>
<p>Dann kann ich das meiner Meinung nach &quot;schön&quot; verwenden, aber die vielen namespaces stören mich ein wenig und die enums sind nicht mehr an die Klasse gebunden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<pre><code class="language-cpp">void foo(color1::type _type = color1::red);
void bar(color2::type _type = color2::red);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1006890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1006890</guid><dc:creator><![CDATA[mantiz]]></dc:creator><pubDate>Thu, 02 Mar 2006 14:52:11 GMT</pubDate></item></channel></rss>