<?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[Test auf undefinierts Objekt]]></title><description><![CDATA[<p>Gibt es eigentlich die Möglichkeit neben einem NULL-Test</p>
<pre><code>If (obj == NULL)
...
if (obj)
...
</code></pre>
<p>auch so etwas, um ein undefiniertes Objekt bzw. Zeiger zu testen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/324006/test-auf-undefinierts-objekt</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 02:51:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324006.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Feb 2014 14:49:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 14:50:17 GMT]]></title><description><![CDATA[<p>Gibt es eigentlich die Möglichkeit neben einem NULL-Test</p>
<pre><code>If (obj == NULL)
...
if (obj)
...
</code></pre>
<p>auch so etwas, um ein undefiniertes Objekt bzw. Zeiger zu testen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385366</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Wed, 26 Feb 2014 14:50:17 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 15:04:18 GMT]]></title><description><![CDATA[<p>Was zum Teufel meinst du denn damit? Wenn der Linker keine Definition findet, dann kannst du das Objekt auch nicht odr-usen. Und wenn er sie hat, dann kompiliert es auch.</p>
<p>Edit: Da war ein Satz, der gehörte da überhaupt nicht hin...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385370</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 26 Feb 2014 15:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 15:26:41 GMT]]></title><description><![CDATA[<p>Es gibt Programmiersprachen, wie z.B. Java, welche keinen Unterschied zwischen Objekt und Referenz oder Zeiger auf ein Objekt machen. Da kann eine Objektvariable schon mal auf kein Objekt zeigen. In C++ gibt es so etwas nicht. Eine Variable vom Typ &quot;Foobar&quot; hat immer ein Objekt. Und das ist auch immer initialisiert. Was das bedeutet, ist von der Klasse ab. Beispielsweise ist ein Objekt vom Typ &quot;std::ifstream&quot; nicht zwangsweise mit einer geöffneten Datei verbunden. Aber dennoch ist das Objekt da.</p>
<p>In C++ gibt es natürlich noch die Zeiger. Die können durchaus auf 0 getestet werden (NULL sollte man in C++ nicht verwenden). Wobei ein nicht initialisierter Zeiger nicht zwangsweise 0 ist sondern möglicherweise irgendwohin zeigt. Das lässt sich nicht fest stellen. Daher sollten Zeiger immer mit 0 initialisiert werden, wenn das erwartet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385374</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 26 Feb 2014 15:26:41 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 15:50:23 GMT]]></title><description><![CDATA[<p>Umgekehrt (wie bei den Std-Streams) kann man für seine Klasse den bool Operator überladen, der anzeigt, ob ein Objekt in einem &quot;guten&quot; Zustand ist. Was gut bedeutet, musst du aber selbst wissen und dir auch selbst definieren. Dann kannst du solche Abfragen machen wie du da angibst.</p>
<p>Um mal auf das Beispiel mit dem Std-Stream zurückzukommen:</p>
<pre><code>std::ifstream ifs; // zwar gültiger Zustand, aber nicht mit einer Datei assoziert

ifs.open(&quot;myFile.txt&quot;); // Nun ist eine Datei geöffnet (falls das klappt)

if ( ifs ) // Falls der Stream offen und gültig ist
    std::cout &lt;&lt; &quot;Datei ist erfolgreich geöffnet&quot; &lt;&lt; std::endl;
else // ifs ist zwar da, aber du kannst damit nicht wirklich arbeiten
    std::cout &lt;&lt; &quot;Datei ist nicht geöffnet&quot; &lt;&lt; std::endl;
</code></pre>
<p>Über Sinn und Unsinn deines Vorhabens will ich nichts sagen.</p>
<p>Was hast du eig da vor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385377</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Wed, 26 Feb 2014 15:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 16:44:31 GMT]]></title><description><![CDATA[<blockquote>
<p>Über Sinn und Unsinn deines Vorhabens will ich nichts sagen.</p>
<p>Was hast du eig da vor?</p>
</blockquote>
<p>Das war rein nur wegen Interesse, ob sowas überhaupt geht. Da es offensichtlich sinnfrei wäre, scheint die Frage ja geklärt zu sein.</p>
<pre><code>NULL sollte man in C++ nicht verwenden
</code></pre>
<p>Ist aber so erst mal besser lesbar, 0 könnte ja nicht unbedingt auf ein Objekt bezogen sein, insofern mag NULL zwar unschön sein, aber ob das wirklich so schlimm ist, glaube ich nicht. <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/2385389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385389</guid><dc:creator><![CDATA[dixidix]]></dc:creator><pubDate>Wed, 26 Feb 2014 16:44:31 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 16:48:24 GMT]]></title><description><![CDATA[<p>dixidix schrieb:</p>
<blockquote>
<pre><code>NULL sollte man in C++ nicht verwenden
</code></pre>
<p>Ist aber so erst mal besser lesbar, 0 könnte ja nicht unbedingt auf ein Objekt bezogen sein, insofern mag NULL zwar unschön sein, aber ob das wirklich so schlimm ist, glaube ich nicht. <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>
</blockquote>
<p>Disclaimer: Folgende Aussagen beziehen sich auf die C++-Versionen vor 2011.<br />
NULL ist nichts anderes als 0, man könnte aber auf die Idee kommen, es sei etwas anderes und bspw. ptr-Overloads gegenüber ints triggern etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385391</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 26 Feb 2014 16:48:24 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 16:52:03 GMT]]></title><description><![CDATA[<p>dixidix schrieb:</p>
<blockquote>
<p>0 könnte ja nicht unbedingt auf ein Objekt bezogen sein, insofern mag NULL zwar unschön sein, aber ob das wirklich so schlimm ist, glaube ich nicht. <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>
</blockquote>
<p>Auch NULL könnte nicht unbedingt auf ein Objekt bezogen sein. Es gibt genug Pappnasen, die ein int mit NULL initialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385394</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 26 Feb 2014 16:52:03 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 17:03:11 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>dixidix schrieb:</p>
<blockquote>
<p>0 könnte ja nicht unbedingt auf ein Objekt bezogen sein, insofern mag NULL zwar unschön sein, aber ob das wirklich so schlimm ist, glaube ich nicht. <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>
</blockquote>
<p>Auch NULL könnte nicht unbedingt auf ein Objekt bezogen sein. Es gibt genug Pappnasen, die ein int mit NULL initialisieren.</p>
</blockquote>
<p>Echte Pappnasen machen alles, was der Compiler durchläßt.</p>
<pre><code>virtual void attack(Mob* mob)=0x0;//changed 4/1/03 since =NULL utterly not worked
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2385395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385395</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 26 Feb 2014 17:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 17:35:50 GMT]]></title><description><![CDATA[<blockquote>
<p>since =NULL utterly not worked</p>
</blockquote>
<p>Warum nicht? Sollte funktionieren. War um 2003 schließlich ein Makro auf 0...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385402</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Wed, 26 Feb 2014 17:35:50 GMT</pubDate></item><item><title><![CDATA[Reply to Test auf undefinierts Objekt on Wed, 26 Feb 2014 17:50:37 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>since =NULL utterly not worked</p>
</blockquote>
<p>Warum nicht? Sollte funktionieren. War um 2003 schließlich ein Makro auf 0...</p>
</blockquote>
<p>Könnte auf (0) geändert würden sein…</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2385404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2385404</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 26 Feb 2014 17:50:37 GMT</pubDate></item></channel></rss>