<?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[pure virtual deklaration]]></title><description><![CDATA[<p>Ich hab jetzt die zwei schreibweisen gesehen</p>
<pre><code class="language-cpp">virtual void foo() = 0;

virtual void foo() = NULL;
</code></pre>
<p>Welche ist besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263316/pure-virtual-deklaration</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 20:30:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263316.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Mar 2010 19:12:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 19:12:44 GMT]]></title><description><![CDATA[<p>Ich hab jetzt die zwei schreibweisen gesehen</p>
<pre><code class="language-cpp">virtual void foo() = 0;

virtual void foo() = NULL;
</code></pre>
<p>Welche ist besser?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871018</guid><dc:creator><![CDATA[pure]]></dc:creator><pubDate>Thu, 18 Mar 2010 19:12:44 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 19:20:57 GMT]]></title><description><![CDATA[<p>= 0 ist korrekt!<br />
Je nachdem was NULL ist (muss nicht immer 0 sein) funktioniert das nicht.</p>
<p>Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871021</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 18 Mar 2010 19:20:57 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 19:23:32 GMT]]></title><description><![CDATA[<p>Die zweite Variante ist schlicht falsch, und wird beispielsweise vom gcc gar nicht erst akzeptiert. Eine rein virtuelle Funktion ist kein Nullpointer!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871022</guid><dc:creator><![CDATA[dooooomi]]></dc:creator><pubDate>Thu, 18 Mar 2010 19:23:32 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 19:33:05 GMT]]></title><description><![CDATA[<p>theta schrieb:</p>
<blockquote>
<p>= 0 ist korrekt!<br />
Je nachdem was NULL ist (muss nicht immer 0 sein) funktioniert das nicht.</p>
</blockquote>
<p>Und was dann? In C++ darf es zum Beispiel nicht <code>(void*)0</code> sein. Der Standard macht den Vorschlag 0 oder 0L. Es muss ein Wert sein, welche zu einem Zeiger implizit konvertierbar ist.</p>
<p>Gut theoreitsch könnte man <code>NULL</code> auch mit<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-220511.html" rel="nofollow"> <code>nullptr</code> </a>gleichsetzen, da es allerdings aus einem C Header herauskommt, halte ich dies für etwas unwahrscheinlich. Ausser es gäbe eine Kompilererweiterung oder sowas.</p>
<p>Aber grundsätzlich hast du natürlich schon recht. <code>= NULL</code> ist für Zeiger vorgesehen und nicht für pure virtual. Daher ist meiner Meinung nach auch nur <code>= 0</code> wirklich korrekt. Ich habe ehrlich gesagt auch noch nie ein <code>= NULL</code> gesehen.</p>
<p>dooooomi schrieb:</p>
<blockquote>
<p>Die zweite Variante ist schlicht falsch, und wird beispielsweise vom gcc gar nicht erst akzeptiert. Eine rein virtuelle Funktion ist kein Nullpointer!</p>
</blockquote>
<p>Rein aus Interesse: Mit welcher Fehlermeldung?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871025</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 18 Mar 2010 19:33:05 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 19:39:28 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Gut theoreitsch könnte man <code>NULL</code> auch mit<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-220511.html" rel="nofollow"> <code>nullptr</code> </a>gleichsetzen, da es allerdings aus einem C Header herauskommt, halte ich dies für etwas unwahrscheinlich. Ausser es gäbe eine Kompilererweiterung oder sowas.</p>
</blockquote>
<p>Dir ist schon klar dass<br />
#define NULL 0<br />
auch aus einem &quot;C Header&quot; kommt obwohl es in C &quot;((void*)0)&quot; sein muss?</p>
<p>Mit dem neuem C++ standard hat man ja sowieso NULL als nullptr.</p>
<p>der gcc wird vermutlich schon nullptr können und deshalb nen fehler ausspucken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871030</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 18 Mar 2010 19:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 19:47:28 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Dravere schrieb:</p>
<blockquote>
<p>Gut theoreitsch könnte man <code>NULL</code> auch mit<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-220511.html" rel="nofollow"> <code>nullptr</code> </a>gleichsetzen, da es allerdings aus einem C Header herauskommt, halte ich dies für etwas unwahrscheinlich. Ausser es gäbe eine Kompilererweiterung oder sowas.</p>
</blockquote>
<p>Dir ist schon klar dass<br />
#define NULL 0<br />
auch aus einem &quot;C Header&quot; kommt obwohl es in C &quot;((void*)0)&quot; sein muss?</p>
</blockquote>
<p>Ehm, ja, ist mir klar. Habe ich doch auch geschrieben? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><sup>3</sup></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871033</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 18 Mar 2010 19:47:28 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 19:50:28 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Ehm, ja, ist mir klar. Habe ich doch auch geschrieben? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><sup>3</sup></p>
</blockquote>
<p>Was meinst du dann mit</p>
<blockquote>
<p>da es allerdings aus einem C Header herauskommt, halte ich dies für etwas unwahrscheinlich</p>
</blockquote>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871035</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 18 Mar 2010 19:50:28 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 20:21:33 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Was meinst du dann mit</p>
<blockquote>
<p>da es allerdings aus einem C Header herauskommt, halte ich dies für etwas unwahrscheinlich</p>
</blockquote>
<p>?</p>
</blockquote>
<p>Dass ich es für unwahrscheinlich halte, dass im C Header <code>cstddef</code> folgendes steht:</p>
<pre><code class="language-cpp">#define NULL nullptr
</code></pre>
<p>Und dabei die <code>nullptr</code> Implementation aus dem verlinkten Thread verwendet wird (also eine C++ Klasse). Ich könnte mir höchstens vorstellen, dass sowas drin steht:</p>
<pre><code class="language-cpp">#define NULL __xxx_compiler_nullptr
</code></pre>
<p>Also irgendeine Kompilererweiterung, bzw. Schlüsselwort.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871044</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 18 Mar 2010 20:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 20:56:36 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Rein aus Interesse: Mit welcher Fehlermeldung?</p>
</blockquote>
<p>error: invalid pure specifier (only `= 0' is allowed) before ‘;’ token</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871061</guid><dc:creator><![CDATA[dooooomi]]></dc:creator><pubDate>Thu, 18 Mar 2010 20:56:36 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 22:09:11 GMT]]></title><description><![CDATA[<p>dooooomi schrieb:</p>
<blockquote>
<p>Dravere schrieb:</p>
<blockquote>
<p>Rein aus Interesse: Mit welcher Fehlermeldung?</p>
</blockquote>
<p>error: invalid pure specifier (only `= 0' is allowed) before ‘;’ token</p>
</blockquote>
<p>Hmmm, jo. Hab es vorhin schnell nachgeschaut. Der GCC hat ein <code>__null</code> Schlüsselwort und verwendet auch dieses für <code>NULL</code> . Wobei allerdings auch in C++ 0 und in C <code>((void*)0)</code> verwendet werden könnte. Allerdings habe ich nicht so ganz verstanden, wann jetzt <code>__GNUG__</code> gesetzt ist und wann nicht. Aber ist eigentlich auch egal <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>Danke.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871108</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 18 Mar 2010 22:09:11 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Thu, 18 Mar 2010 22:10:21 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Dass ich es für unwahrscheinlich halte, dass im C Header <code>cstddef</code> folgendes steht:</p>
<pre><code class="language-cpp">#define NULL nullptr
</code></pre>
<p>Und dabei die <code>nullptr</code> Implementation aus dem verlinkten Thread verwendet wird (also eine C++ Klasse). Ich könnte mir höchstens vorstellen, dass sowas drin steht:</p>
<pre><code class="language-cpp">#define NULL __xxx_compiler_nullptr
</code></pre>
<p>Also irgendeine Kompilererweiterung, bzw. Schlüsselwort.</p>
</blockquote>
<p>Ich sehe nicht was das mit C Headern zu tun hat. Und ich sehe auch kein problem mit nullptr an der Stelle.</p>
<p>Natürlich wird das erst langsam kommen, aber irgendwann wird NULL überall mit nullptr definiert sein.</p>
<p>ich habe gerade keinen gcc bei der hand, aber ich denke der neue wird nullptr schon können. der vc++ kennt nullptr zb schon, tut es aber nicht als #define NULL nullptr nutzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>auf lange sicht wird das aber der fall sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871109</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 18 Mar 2010 22:10:21 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Fri, 19 Mar 2010 07:27:56 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Ich sehe nicht was das mit C Headern zu tun hat. Und ich sehe auch kein problem mit nullptr an der Stelle.</p>
</blockquote>
<p><code>NULL</code> kommt aus dem C Header <code>cstddef</code> . Also mit C hat es durchaus was zu tun. Allerdings stand ich gestern irgendwie auf dem Schlauch. Man kann natürlich im Header <code>stddef.h</code> ein <code>#ifdef __cpluplus</code> verwenden oder im Header <code>cstddef</code> ein <code>#undef NULL</code> und dann ein neues <code>#define NULL</code> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Also mit C Headern hat es schon was zu tun, die Aussage ist aber ansonsten NULL-wertig <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871182</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 19 Mar 2010 07:27:56 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Fri, 19 Mar 2010 08:53:55 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>Also mit C hat es durchaus was zu tun.</p>
</blockquote>
<p>Nur dem Namen nach und weil cstddef aus Kompatibilitätsgründen zur C-Bibliothek in den Standard übernommen wurde.</p>
<blockquote>
<p>Man kann natürlich im Header <code>stddef.h</code> ein <code>#ifdef __cpluplus</code> verwenden oder im Header <code>cstddef</code> ein <code>#undef NULL</code> und dann ein neues <code>#define NULL</code> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Oder cstddef bindet stddef.h garnicht ein, das wird afaik nicht vom Standard verlangt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871199</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 19 Mar 2010 08:53:55 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Fri, 19 Mar 2010 09:18:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9960">@pumuckl</a>,<br />
Hast du schon mal eine Implementation von <code>cstddef</code> gesehen, welche nicht <code>stddef.h</code> inkludiert hat? Aber klar, man könnte auch <code>cstddef</code> in C++ implementieren und <code>stddef.h</code> nicht verwenden. Trotzdem ist es ein C Header, wenn es auch nur ein Name ist. Allerdings wie gesagt, ich stand komplett auf dem Schlauch.</p>
<p>Übrigens nicht nur hier, sondern auch bei meiner Kaffeemaschine. Wollte mir am Abend einen Kaffee rauslassen und da kam einfach nichts raus, bzw. der Motor sprang nicht mal an. Volle Panik geschoben, bis ich nach langem suchen bemerkt habe, dass ich keine Kaffee-Kapsel eingelegt hatte...</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871205</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 19 Mar 2010 09:18:14 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Fri, 19 Mar 2010 10:15:37 GMT]]></title><description><![CDATA[<p>Dein Punkt macht keinen Sinn.</p>
<p>Denn wenn ich in C++ cstddef inkludiere ist NULL 0, wenn ich in C stddef.h inkludiere ist NULL ((void*)0).</p>
<p>Es gibt also standardmäßig eine Spezialbehandlung. Da ist es absolut kein Problem statt</p>
<pre><code class="language-cpp">#ifdef __cplusplus
#define NULL 0
</code></pre>
<p>ein</p>
<pre><code class="language-cpp">#ifdef __cplusplus
#define NULL nullptr
</code></pre>
<p>zu machen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871212</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Fri, 19 Mar 2010 10:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to pure virtual deklaration on Fri, 19 Mar 2010 13:06:40 GMT]]></title><description><![CDATA[<p>Shade Of Mine schrieb:</p>
<blockquote>
<p>Dein Punkt macht keinen Sinn.</p>
</blockquote>
<p>Schön, dass du dies auch noch bemerkst. Ich habe es nun schon ca. 2 mal selber hingeschrieben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1871281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1871281</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 19 Mar 2010 13:06:40 GMT</pubDate></item></channel></rss>