<?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[Nochmal new operator]]></title><description><![CDATA[<p>Also, ich lege mit dem new operator ein Objekt an. Der new Befehl steht in einem try Block. Exceptions von new werden abgefangen und ErrorMessage erzeugt dann einfach eine Messagebox mit der Fehlerangabe.<br />
Das komische ist nun, dass new keine Exception erzeugt, aber myObjPtr nach dem new trotzdem NULL ist.</p>
<pre><code>class MyObjT{
    ...
  };//In Header definiert, aber hier inline

  MyObjT *myObjPtr = nullptr; //In .cpp Datei, globale Variable

  int perform(void){   
    try{
    	myObjPtr = new MyObjT;
    }
    catch(exception){
    	ErrorMessage(&quot;Creating of  Class failed!&quot;);
    	return EXIT_FAILURE;
    }
    ...
    delete myObjPtr;
    return EXIT_SUCCESS;
 }
</code></pre>
<p>Verwende ich hingegen</p>
<pre><code>myObjPtr = new (nothrow) MyObjT;
</code></pre>
<p>dann enthält myObjPtr einen Zeiger auf ein valides Objekt.</p>
<p>Meine erste Idee war, dass der Konstruktor eine Exception erzeugt und nicht new selbst. Auch dann müsste jedoch in den catch Block gesprungen werden.<br />
Wie kann es sein, dass es in dem einen Fall funktioniert und im anderen Fall nicht?<br />
Ich versuche den Fehler weiter einzugrenzen, aber zur Zeit ist dies der Code, den ich für minimal halte um den relevanten Programmablauf zu zeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326788/nochmal-new-operator</link><generator>RSS for Node</generator><lastBuildDate>Sat, 30 May 2026 08:58:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326788.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Jul 2014 15:16:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nochmal new operator on Mon, 07 Jul 2014 15:16:24 GMT]]></title><description><![CDATA[<p>Also, ich lege mit dem new operator ein Objekt an. Der new Befehl steht in einem try Block. Exceptions von new werden abgefangen und ErrorMessage erzeugt dann einfach eine Messagebox mit der Fehlerangabe.<br />
Das komische ist nun, dass new keine Exception erzeugt, aber myObjPtr nach dem new trotzdem NULL ist.</p>
<pre><code>class MyObjT{
    ...
  };//In Header definiert, aber hier inline

  MyObjT *myObjPtr = nullptr; //In .cpp Datei, globale Variable

  int perform(void){   
    try{
    	myObjPtr = new MyObjT;
    }
    catch(exception){
    	ErrorMessage(&quot;Creating of  Class failed!&quot;);
    	return EXIT_FAILURE;
    }
    ...
    delete myObjPtr;
    return EXIT_SUCCESS;
 }
</code></pre>
<p>Verwende ich hingegen</p>
<pre><code>myObjPtr = new (nothrow) MyObjT;
</code></pre>
<p>dann enthält myObjPtr einen Zeiger auf ein valides Objekt.</p>
<p>Meine erste Idee war, dass der Konstruktor eine Exception erzeugt und nicht new selbst. Auch dann müsste jedoch in den catch Block gesprungen werden.<br />
Wie kann es sein, dass es in dem einen Fall funktioniert und im anderen Fall nicht?<br />
Ich versuche den Fehler weiter einzugrenzen, aber zur Zeit ist dies der Code, den ich für minimal halte um den relevanten Programmablauf zu zeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407432</guid><dc:creator><![CDATA[MC]]></dc:creator><pubDate>Mon, 07 Jul 2014 15:16:24 GMT</pubDate></item><item><title><![CDATA[Reply to Nochmal new operator on Mon, 07 Jul 2014 16:58:13 GMT]]></title><description><![CDATA[<p>MC schrieb:</p>
<blockquote>
<p>Ich versuche den Fehler weiter einzugrenzen, aber zur Zeit ist dies der Code, den ich für minimal halte um den relevanten Programmablauf zu zeigen.</p>
</blockquote>
<p>Erzeugt er denn auch den Fehler? Du hast in deinem anderen Thread ja schon irrelevanten Code gezeigt. Lies dir dringend den Thread über das richtige Posten von Code durch.</p>
<p>Außerdem zeigt dieser Code die gleichen Fehldesigns wie in deinem anderen Thread. Bloß manuelle Speicherverwaltung + Exceptions + globale Variablen ist noch einmal gleich mehrere Eskalationsstufen schlimmer. Da wunderst du dich über Fehler? Warum machst du das überhaupt so?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407448</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 07 Jul 2014 16:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to Nochmal new operator on Tue, 08 Jul 2014 13:51:21 GMT]]></title><description><![CDATA[<p>Ich verwende zum Kurvenfitten folgende Bibliothek, die aber in C geschrieben ist.</p>
<p>/*<br />
* Project: LevenbergMarquardtLeastSquaresFitting<br />
*<br />
* File: lmmin.h<br />
*<br />
* Contents: Public interface to the Levenberg-Marquardt core implementation.<br />
*<br />
* Author: Joachim Wuttke 2004-2010<br />
*<br />
* Homepage: <a href="http://www.messen-und-deuten.de/lmfit" rel="nofollow">www.messen-und-deuten.de/lmfit</a><br />
*/</p>
<p>Die Fitfunktion wird in diesem Paket per Callback Funktionenpointer eingebaut.<br />
Bevor ich die Fitroutinen verwende, erstelle ich ein Objekt, welches eine Methode zum Entgegennehmen der Einstellungen für den Fit beinhaltet, die Startparameter in privaten Elementen speichert und die Fitfunktionen bereitstellt.<br />
Die Callback Funktion, die über die Fitbibliothek aufgerufen wird, ruft eine Methode des Objektes auf, um einen Wert von der am Anfang ausgewählten Fitfunktion zu erhalten. Das Objekt bzw. eine Referenz auf das Objekt kann ich nicht an die Callback Funktion übergeben. Daher sah ich erstmal keine andere Möglichkeit als den globalen Pointer auf das Objekt zu verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407593</guid><dc:creator><![CDATA[MC]]></dc:creator><pubDate>Tue, 08 Jul 2014 13:51:21 GMT</pubDate></item></channel></rss>