<?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 Klassenattribute]]></title><description><![CDATA[<p>Hi @all,</p>
<p>Seit c++11 ist es möglich konstante Klassenattribute zu definieren.</p>
<p>Dieses nette Feature wollte ich für mein Projekt nutzen, jedoch stoße ich auf einen bemerkenswerten Fehler, welchen ich mir nicht erklären kann.</p>
<p>folgender Code:</p>
<pre><code>#include&lt;string&gt;
using namespace std;

class test
{
public:
	test()
		:foo( a )
	{}

	string foo;
private:

	const string a = &quot;Hallo&quot;;
};

int main(int argc , char** argv)
{

	test bar;
	return 0;
}
</code></pre>
<p>schmeißt mich bei der Konstruktion des Objektes raus ( wirft eine bad_alloc exception ).<br />
Da ich im Projekt mit GUI arbeite, habe ich es zuerst auf die GUI-Bibliothek geschoben, aber selbst bei dem obigen simplen Beispiel tritt der Fehler auf, warum ist das so, bzw. was mache ich falsch?</p>
<p>PS: Wenn man sich jetzt fragt, warum man ein privaten konstatnten String deklariert, um ihn dann in einen public string zu packen, sollte man bedenken, dass das obige Bsp. nur dazu dient, das Problem zu verdeutlichen, im eigentlichen Projekt macht die Verwendung natürlich Sinn!</p>
<p>mfG<br />
Hlymur</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/325102/konstante-klassenattribute</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 13:39:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/325102.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 Apr 2014 20:10:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstante Klassenattribute on Mon, 14 Apr 2014 20:10:22 GMT]]></title><description><![CDATA[<p>Hi @all,</p>
<p>Seit c++11 ist es möglich konstante Klassenattribute zu definieren.</p>
<p>Dieses nette Feature wollte ich für mein Projekt nutzen, jedoch stoße ich auf einen bemerkenswerten Fehler, welchen ich mir nicht erklären kann.</p>
<p>folgender Code:</p>
<pre><code>#include&lt;string&gt;
using namespace std;

class test
{
public:
	test()
		:foo( a )
	{}

	string foo;
private:

	const string a = &quot;Hallo&quot;;
};

int main(int argc , char** argv)
{

	test bar;
	return 0;
}
</code></pre>
<p>schmeißt mich bei der Konstruktion des Objektes raus ( wirft eine bad_alloc exception ).<br />
Da ich im Projekt mit GUI arbeite, habe ich es zuerst auf die GUI-Bibliothek geschoben, aber selbst bei dem obigen simplen Beispiel tritt der Fehler auf, warum ist das so, bzw. was mache ich falsch?</p>
<p>PS: Wenn man sich jetzt fragt, warum man ein privaten konstatnten String deklariert, um ihn dann in einen public string zu packen, sollte man bedenken, dass das obige Bsp. nur dazu dient, das Problem zu verdeutlichen, im eigentlichen Projekt macht die Verwendung natürlich Sinn!</p>
<p>mfG<br />
Hlymur</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394604</guid><dc:creator><![CDATA[Hlymur]]></dc:creator><pubDate>Mon, 14 Apr 2014 20:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Klassenattribute on Mon, 14 Apr 2014 20:23:34 GMT]]></title><description><![CDATA[<p>Die member werden in der Reihenfolge Ihrer Deklaration in der Klassendefinition initialisiert.<br />
D.h. foo, vor a.<br />
Dann ist's natürlich Essig mit Deiner Initialisierung.</p>
<pre><code class="language-cpp">class test
{
    const string a = &quot;Hallo&quot;;
public:
    test()
        :foo( a )
    {}

    string foo;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2394605</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394605</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Mon, 14 Apr 2014 20:23:34 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Klassenattribute on Mon, 14 Apr 2014 20:28:28 GMT]]></title><description><![CDATA[<p>Hlymur schrieb:</p>
<blockquote>
<p>Seit c++11 ist es möglich konstante Klassenattribute zu definieren.</p>
</blockquote>
<p>Das ging schon immer. Neu ist bloss dass man die Dinger direkt in der Klassendeklaration initialisieren kann.</p>
<p>Und ein kleiner Tip: wenn <code>a</code> eh für alle Instanzen immer den selben Wert hat, dann mach es <code>static</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394606</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 14 Apr 2014 20:28:28 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Klassenattribute on Mon, 14 Apr 2014 20:29:24 GMT]]></title><description><![CDATA[<p>Danke für die schnellen Antworten <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/2394608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394608</guid><dc:creator><![CDATA[Hlymur]]></dc:creator><pubDate>Mon, 14 Apr 2014 20:29:24 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Klassenattribute on Tue, 15 Apr 2014 07:56:56 GMT]]></title><description><![CDATA[<blockquote>
<p>Das ging schon immer.</p>
</blockquote>
<p>Und war schon immer Schwachsinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394655</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Tue, 15 Apr 2014 07:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Klassenattribute on Tue, 15 Apr 2014 08:14:53 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Das ging schon immer.</p>
</blockquote>
<p>Und war schon immer Schwachsinn.</p>
</blockquote>
<p>Versuch mal mit einem Konstanten Member ein paar Operatoren zu schreiben. Ich halte Konstante Klassenattribute für kleine Fallen die gerne irgendwann zuschnappen und dann für viel Tipparbeit sorgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394656</guid><dc:creator><![CDATA[ichhoffedasistrichtig]]></dc:creator><pubDate>Tue, 15 Apr 2014 08:14:53 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Klassenattribute on Tue, 15 Apr 2014 10:09:52 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Das ging schon immer.</p>
</blockquote>
<p>Und war schon immer Schwachsinn.</p>
</blockquote>
<p>Ach du bist ja so schlau und erfahren.</p>
<p>Spar's dir bitte einfach das nächste mal, ja?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2394672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2394672</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 15 Apr 2014 10:09:52 GMT</pubDate></item></channel></rss>