<?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[[SOLVED] C++11 (G++) - override erzwingen?]]></title><description><![CDATA[<p>Hey,</p>
<p>gibt es für den g++ Compiler einen Weg beim überschreiben von virtuellen Methoden eine Warnung anzuzeigen, wenn man das c++11 Schlüsselwort <code>override</code> vergessen hat?</p>
<p>So nach dem Motto:</p>
<pre><code>class A
{
  virtual void foo(){}
};

class Correct : public A
{
  void foo() override {} // OK
};

class WithWarning : public A
{
  void foo() {} // hier wird eine warnung angezeigt
};
</code></pre>
<p>grüße, Robert</p>
<p>PS: Um externe Bibliotheken mache ich mir keine Sorgen, da ich <code>-isystem</code> anstatt <code>-I</code> verwende.</p>
<p>Edit: Nicht zwingend notwendige <code>virtual</code> s aus ästhetischen Gründen entfernt</p>
<p>Edit2: fehlende <code>: public A</code> hinzugefügt</p>
<p>Edit3: Thread als Solved markiert</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/315102/solved-c-11-g-override-erzwingen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 31 Jul 2026 11:52:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/315102.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 23 Mar 2013 19:31:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:54:03 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>gibt es für den g++ Compiler einen Weg beim überschreiben von virtuellen Methoden eine Warnung anzuzeigen, wenn man das c++11 Schlüsselwort <code>override</code> vergessen hat?</p>
<p>So nach dem Motto:</p>
<pre><code>class A
{
  virtual void foo(){}
};

class Correct : public A
{
  void foo() override {} // OK
};

class WithWarning : public A
{
  void foo() {} // hier wird eine warnung angezeigt
};
</code></pre>
<p>grüße, Robert</p>
<p>PS: Um externe Bibliotheken mache ich mir keine Sorgen, da ich <code>-isystem</code> anstatt <code>-I</code> verwende.</p>
<p>Edit: Nicht zwingend notwendige <code>virtual</code> s aus ästhetischen Gründen entfernt</p>
<p>Edit2: fehlende <code>: public A</code> hinzugefügt</p>
<p>Edit3: Thread als Solved markiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309145</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:54:03 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 19:34:59 GMT]]></title><description><![CDATA[<p>Du kannst das virtual bei override weglassen.<br />
Aber ich bezweifle, das das mit der Warnung so einfach geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309150</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309150</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 23 Mar 2013 19:34:59 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 19:45:55 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Du kannst das virtual bei override weglassen.</p>
</blockquote>
<p>Du kannst das virtual auch ohne das override weg lassen, das macht es trotzdem nicht hübscher. <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/2309153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309153</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 23 Mar 2013 19:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 19:55:13 GMT]]></title><description><![CDATA[<p>Finde ich schon, dass es das hübscher macht. :p<br />
Oder wenigstens übersichtlicher<br />
Außerdem stimmt meine Aussage doch: Bei override kann man das weglassen. Ich sagte ja nicht, nur bei override kann man das weglassen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2309157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309157</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 23 Mar 2013 19:55:13 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:02:39 GMT]]></title><description><![CDATA[<p>Bevor die Diskussion noch offtopic wird, habe ich die <code>virtual</code> s schnell mal entfernt <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2309159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309159</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:13:55 GMT]]></title><description><![CDATA[<p>Warum offtopic? Deine Frage wurde doch schon beantwortet: Geht nicht, gibt's nicht. Falls du das nicht glauben willst, lies halt einfach die Doku: <a href="http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html" rel="nofollow">http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html</a><br />
ctrl+f &quot;override&quot; kommt nur an 3 Stellen vor, und keine davon hat was mit override zu tun.</p>
<p>Und mit virtual war's schöner. Die sollen lieber mal einbauen dass gewarnt wird, wenn da kein virtual vor steht. <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/2309160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309160</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:13:55 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:19:39 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Und mit virtual war's schöner. Die sollen lieber mal einbauen dass gewarnt wird, wenn da kein virtual vor steht. <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>Bei mir sagt &quot;virtual&quot; nur &quot;Die hier darfst Du als Erbe ruhig überschreiben, das ist so vorgesehen&quot;. Und wenn ich es weglasse, heißt das &quot;Kann mir echt nicht vorstellen, warum Du die überschreiben magst, denk bitte nochmal darüber nach&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309163</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:19:39 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:32:54 GMT]]></title><description><![CDATA[<p>/ONTOPIC:</p>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Falls du das nicht glauben willst, lies halt einfach die Doku: <a href="http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html" rel="nofollow">http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html</a><br />
ctrl+f &quot;override&quot; kommt nur an 3 Stellen vor, und keine davon hat was mit override zu tun.</p>
</blockquote>
<p>Bist du dir 100%-ig sicher, dass die Liste komplett ist? Folgende Warnung kommt nämlich auch nicht in der Liste vor:</p>
<pre><code>-Woverloaded-virtual
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2309167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309167</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:45:42 GMT]]></title><description><![CDATA[<p><a href="http://linux.die.net/man/1/g++" rel="nofollow">http://linux.die.net/man/1/g++</a></p>
<p>man page kennt da auch nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309168</guid><dc:creator><![CDATA[ichbinsisyphos]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:45:42 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:51:06 GMT]]></title><description><![CDATA[<p>SilentRob schrieb:</p>
<blockquote>
<p>Bist du dir 100%-ig sicher, dass die Liste komplett ist?</p>
</blockquote>
<p>Jetzt wo du es erwähnst, GNU hatte es noch nie so mit dem Dokumentieren. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2309170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309170</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:51:06 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 20:52:34 GMT]]></title><description><![CDATA[<p>ichbinsisyphos schrieb:</p>
<blockquote>
<p><a href="http://linux.die.net/man/1/g++" rel="nofollow">http://linux.die.net/man/1/g++</a></p>
<p>man page kennt da auch nichts.</p>
</blockquote>
<p>Ok, vielen dank. Vll sollte ich ein feature request dafür erstellen.</p>
<p>/OFFTOPIC:</p>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Und mit virtual war's schöner. Die sollen lieber mal einbauen dass gewarnt wird, wenn da kein virtual vor steht. <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>Lol, bin gerade über ein Feature Request gestolpert, das sich genau das wünscht:<br />
<a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31397" rel="nofollow">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31397</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309171</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 23 Mar 2013 20:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 21:25:33 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Und mit virtual war's schöner. Die sollen lieber mal einbauen dass gewarnt wird, wenn da kein virtual vor steht. <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>Bei mir sagt &quot;virtual&quot; nur &quot;Die hier darfst Du als Erbe ruhig überschreiben, das ist so vorgesehen&quot;. Und wenn ich es weglasse, heißt das &quot;Kann mir echt nicht vorstellen, warum Du die überschreiben magst, denk bitte nochmal darüber nach&quot;.</p>
</blockquote>
<p>Drum bin ich auch fürs davorschreiben. Denn vom Erben kann auch eine weitere Klasse erben, und für die gilt ein geerbtes virtual auch, selbst wenn es beim ersten Erben nicht davorsteht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309179</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 23 Mar 2013 21:25:33 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 21:41:37 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Und mit virtual war's schöner. Die sollen lieber mal einbauen dass gewarnt wird, wenn da kein virtual vor steht. <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>Bei mir sagt &quot;virtual&quot; nur &quot;Die hier darfst Du als Erbe ruhig überschreiben, das ist so vorgesehen&quot;. Und wenn ich es weglasse, heißt das &quot;Kann mir echt nicht vorstellen, warum Du die überschreiben magst, denk bitte nochmal darüber nach&quot;.</p>
</blockquote>
<p>Drum bin ich auch fürs davorschreiben. Denn vom Erben kann auch eine weitere Klasse erben, und für die gilt ein geerbtes virtual auch, selbst wenn es beim ersten Erben nicht davorsteht.</p>
</blockquote>
<p>Und deswegen bin ich nicht fürs automatiwsche davorschreiben, denn es kann sein, daß die Erben des Erben sie nicht mehr überschreiben sollen, obwohl sie rein technisch noch virtual ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309187</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 23 Mar 2013 21:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 21:43:19 GMT]]></title><description><![CDATA[<p>Ich schreib in abgeleiteten Klassen nur noch override, nicht mehr virtual.<br />
Mit virtual kann man noch denken, da wird eine neue Funktion eingeführt, meiner Meinung nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309189</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sat, 23 Mar 2013 21:43:19 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] C++11 (G++) - override erzwingen? on Sat, 23 Mar 2013 21:56:11 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Und deswegen bin ich nicht fürs automatiwsche davorschreiben, denn es kann sein, daß die Erben des Erben sie nicht mehr überschreiben sollen, obwohl sie rein technisch noch virtual ist.</p>
</blockquote>
<p>Dafür gibt's aber final. :p</p>
<p>Nathan schrieb:</p>
<blockquote>
<p>Ich schreib in abgeleiteten Klassen nur noch override, nicht mehr virtual.</p>
</blockquote>
<p>Ich muss zugeben, wenn man override und final hat, wird virtual ein wenig redundant. Mal sehen, vielleicht steige ich um.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2309194</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2309194</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 23 Mar 2013 21:56:11 GMT</pubDate></item></channel></rss>