<?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[Konstruktor NULL zurückgeben Lassen]]></title><description><![CDATA[<p>Ist es möglich, wenn irgendein Code im Konstruktor nicht geklappt hat, dass er 0 zurückgibt<br />
Beispiel:</p>
<pre><code>Klasse *bla = new Klasse()
if(bla==NULL)
{
     //Error
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/207256/konstruktor-null-zurückgeben-lassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 00:41:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207256.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Mar 2008 12:48:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktor NULL zurückgeben Lassen on Wed, 05 Mar 2008 12:48:08 GMT]]></title><description><![CDATA[<p>Ist es möglich, wenn irgendein Code im Konstruktor nicht geklappt hat, dass er 0 zurückgibt<br />
Beispiel:</p>
<pre><code>Klasse *bla = new Klasse()
if(bla==NULL)
{
     //Error
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1468748</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468748</guid><dc:creator><![CDATA[Konstruktor NULL]]></dc:creator><pubDate>Wed, 05 Mar 2008 12:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor NULL zurückgeben Lassen on Wed, 05 Mar 2008 13:00:42 GMT]]></title><description><![CDATA[<p>Nein, ein Konstruktor kann nichts zurückgeben. Du kannst eine Exception werfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468754</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:00:42 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor NULL zurückgeben Lassen on Wed, 05 Mar 2008 13:04:24 GMT]]></title><description><![CDATA[<p>Wenn ein Konstruktor ein Objekt erfolgreich instanziieren konnte wird an einer Adresse Speicher angelegt. Die Adresse bekommst Du zurück. Deshalb ist jeder Konstruktor &lt;= 0 ungültig. Ein Konstruktor gibt somit immer entweder eine gültiger Seicheradresse zurück oder er konnte keinen Speicher anlegen. Ob er imletzteren Fall Null, -1 zurückgibt, oder eine Exception wirft, weiß ich nicht.</p>
<p>Ok ok ich gehe mich schon in die Ecke stellen.<br />
<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>Jedenfalls solltest Du den Fall vorsehen, daß der Konstruktor keinen Speicher reservieren konnte.</p>
<p>Grüße, M. Incani</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468756</guid><dc:creator><![CDATA[BlackPepper]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor NULL zurückgeben Lassen on Wed, 05 Mar 2008 13:10:32 GMT]]></title><description><![CDATA[<p>man kann doch versuchen den erfordeerlichen rohspeicherplatz zu reservieren.. wenn das klapp darin das objekt anlegen.. weis aber nich mehr wie das geht;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468761</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:10:32 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor NULL zurückgeben Lassen on Wed, 05 Mar 2008 13:15:40 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>man kann doch versuchen den erfordeerlichen rohspeicherplatz zu reservieren.. wenn das klapp darin das objekt anlegen.. weis aber nich mehr wie das geht;)</p>
</blockquote>
<p>Und das bringt Dir was genau?</p>
<p>Den Fehler, wenn kein Speicher verfügbar ist, musst Du immer abfangen, egal ob beim Rohspeicher allokieren oder beim Objekte konstruieren. Und wenn Du 0 als Rückgabe von new haben willst, nimmst Du new (nothrow), welches es (oh Wunder) sowohl für Rohspeicher als auch für Objekte gibt.</p>
<p>Ich glaube auch eher es kommt dem OP darauf an, einen Fehler <strong>innerhalb</strong> des Konstruktors anzuzeigen. Und dafür kann man wie gesagt Exceptions nutzen. Da ist auch garantiert dass nichts allokiert wurde wenn die Exception abgefangen wird.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13457">@BlackPepper</a>:<br />
Ein Konstruktor gibt <strong>niemals</strong> etwas zurück. Das ist der Operator bzw. der Ausdruck new Objekt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468765</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor NULL zurückgeben Lassen on Wed, 05 Mar 2008 13:15:40 GMT]]></title><description><![CDATA[<p>Der Konstruktor selbst reserviert keinen Speicher, das macht new.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468764</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktor NULL zurückgeben Lassen on Wed, 05 Mar 2008 13:57:05 GMT]]></title><description><![CDATA[<p>Wie schon angedeutet gibt es kein Rückgabewert von Konstruktoren. Bei new ist das Verhalten zumindest bei VC++ 2005 (und ich glaube auch nach dem C++98 Standard) wie folgt:</p>
<p>Bei einem Fehlschlag wird std::bad_alloc als Exception ausgelöst.</p>
<p>Sofern Exceptions deaktivert sind (was aber IMHO kein Standard ist), sowie auf Pre-Standard Compilern, liefert new statt dessen einen 0-Zeiger.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468790</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468790</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 05 Mar 2008 13:57:05 GMT</pubDate></item></channel></rss>