<?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[konstante innerhalb einer klasse definieren]]></title><description><![CDATA[<p>hi,</p>
<p>wie definiert man am schönsten eine konstante innerhalb einer klasse ? lieber mit static + definition in der *.cpp - datei oder mit einem enum?<br />
die konstante soll natürlich privat sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150287/konstante-innerhalb-einer-klasse-definieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 13:44:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150287.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Jun 2006 20:20:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to konstante innerhalb einer klasse definieren on Wed, 14 Jun 2006 20:20:03 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>wie definiert man am schönsten eine konstante innerhalb einer klasse ? lieber mit static + definition in der *.cpp - datei oder mit einem enum?<br />
die konstante soll natürlich privat sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1077855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077855</guid><dc:creator><![CDATA[ld aæ&amp;amp;#322; { &amp;amp;#3]]></dc:creator><pubDate>Wed, 14 Jun 2006 20:20:03 GMT</pubDate></item><item><title><![CDATA[Reply to konstante innerhalb einer klasse definieren on Wed, 14 Jun 2006 20:48:20 GMT]]></title><description><![CDATA[<p>Also eigentlich ist das kein Problem.</p>
<p>Du kannst ganz normal ein const dafür verwenden. Dabei musst Du aber beachten, dass die Konstanten dann per Elementinitialisierer belegt werden müssen, z.B.:</p>
<pre><code class="language-cpp">class ConstTest
{
    private:
        const int a;
    public:
        ConstTest(int i):a(i){}
};
</code></pre>
<p>Wenn die Konstante für alle Instanzen der Klasse immer dieselbe sein soll, dann musst Du natürlich die Variante mit static verwenden, also:</p>
<pre><code class="language-cpp">class ConstTest
{
    private:
        static const int a;
    ...

};
</code></pre>
<p>und dann separat:</p>
<pre><code class="language-cpp">const int ConstTest::a=50;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1077863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077863</guid><dc:creator><![CDATA[Andreas2]]></dc:creator><pubDate>Wed, 14 Jun 2006 20:48:20 GMT</pubDate></item><item><title><![CDATA[Reply to konstante innerhalb einer klasse definieren on Wed, 14 Jun 2006 21:03:58 GMT]]></title><description><![CDATA[<p>ld aæł { &amp;#3 schrieb:</p>
<blockquote>
<p>hi,</p>
<p>wie definiert man am schönsten eine konstante innerhalb einer klasse ? lieber mit static + definition in der *.cpp - datei oder mit einem enum?<br />
die konstante soll natürlich privat sein...</p>
</blockquote>
<p>wenn du kannst (d.h. dein compiler spielt mit), nutzt static const. der enum hack hat einige kleine nachteile. unter anderem deshalb, weil die resultierende konstante nicht immer den richtigen typ hat (im jeweiligen kontext wird sie fast immer als int auftreten). das schränkt einmal den werte bereich ein und hat u.U. auch zur folge, das man zusätzliche casts in seinen code einfügen muss.</p>
<p>P.S. kleiner nachtrag zum titel: du kannst eine statische konstante zwar innerhalb einer klassendefinition initialisieren. die betreffende konstante ist damit aber trotzdem nur deklariert. falls irgendein teil deines code eine definition verlangt (das wird allerdings nicht häufig sein - konstanten treten nunmal selten als lvalues auf), muss die konstante trotzdem noch ausserhalb der klasse definiert werden (dann allerdings ohne initialisierer!).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1077868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077868</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 14 Jun 2006 21:03:58 GMT</pubDate></item></channel></rss>