<?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[static virtual als Memberfunktion]]></title><description><![CDATA[<p>Ich weiß, dass ein static virtual für den Compiler keinen Sinn machen kann.<br />
Allerdings könnte folgendes Szenario für den Programmierer eintreten:<br />
Man möchte eine Klasse erstellen, die eine static Memberfunktion beherbergt (also eine FUnktion die keine Objektabhängigkeit besitzt). Wenn man nun diese Klasse ableitet und diese Funktion überlädt, würde nun statt der überladenen Variante immer die Basisvariante aufgerufen werden. Kann man das irgendwie umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304283/static-virtual-als-memberfunktion</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 00:49:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304283.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Jun 2012 17:20:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sat, 02 Jun 2012 17:20:38 GMT]]></title><description><![CDATA[<p>Ich weiß, dass ein static virtual für den Compiler keinen Sinn machen kann.<br />
Allerdings könnte folgendes Szenario für den Programmierer eintreten:<br />
Man möchte eine Klasse erstellen, die eine static Memberfunktion beherbergt (also eine FUnktion die keine Objektabhängigkeit besitzt). Wenn man nun diese Klasse ableitet und diese Funktion überlädt, würde nun statt der überladenen Variante immer die Basisvariante aufgerufen werden. Kann man das irgendwie umgehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218570</guid><dc:creator><![CDATA[dgrat__]]></dc:creator><pubDate>Sat, 02 Jun 2012 17:20:38 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sat, 02 Jun 2012 17:27:43 GMT]]></title><description><![CDATA[<p>dgrat__ schrieb:</p>
<blockquote>
<p>Wenn man nun diese Klasse ableitet und diese Funktion überlädt, würde nun statt der überladenen Variante immer die Basisvariante aufgerufen werden. Kann man das irgendwie umgehen?</p>
</blockquote>
<p>Was genau willst du umgehen? Du rufst explizit die Methode der Basisklasse auf, was sollte also auch anderes passieren!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218574</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sat, 02 Jun 2012 17:27:43 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sat, 02 Jun 2012 18:05:30 GMT]]></title><description><![CDATA[<p>dgrat__ schrieb:</p>
<blockquote>
<p>Kann man das irgendwie umgehen?</p>
</blockquote>
<p>Klar, deklariere die Funktion als virtual <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218594</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Sat, 02 Jun 2012 18:05:30 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sat, 02 Jun 2012 18:46:58 GMT]]></title><description><![CDATA[<p>Naja ich finde mich eben damit ab, dass es nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218614</guid><dc:creator><![CDATA[dgrat__]]></dc:creator><pubDate>Sat, 02 Jun 2012 18:46:58 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sat, 02 Jun 2012 18:50:36 GMT]]></title><description><![CDATA[<p>Es geht nicht, weil es keinen Sinn macht. Wenn du uns erklärst, wieso genau du meintest das tun zu wollen, dann können wir dir vielleicht eine bessere Lösung vorschlagen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218616</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sat, 02 Jun 2012 18:50:36 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sat, 02 Jun 2012 18:56:48 GMT]]></title><description><![CDATA[<p>Wenn du Klassen als first-class Klassen haben willst, dann musst du z.B. Python verwenden, da geht so etwas (nennt sich classmethod).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218618</guid><dc:creator><![CDATA[Tippgeber]]></dc:creator><pubDate>Sat, 02 Jun 2012 18:56:48 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sat, 02 Jun 2012 19:19:38 GMT]]></title><description><![CDATA[<p>Wenn ich das richtig verstanden habe, wird die Funktion doch sowieso in einer Memberfunktion oder zumindest über ein Objekt aufgerufen? Dann spar dir das static einfach und mach sie virtual.<br />
Gehört zwar nicht mehr zur Frage, aber habt ihr euch auch schonmal virtual static member Variablen gewünscht? Man könnte das zwar einfach durch eine normale virtual function lösen, aber ich stelle mir vor dass der Zugriff auf eine Variable über einen direkten pointer im vtable schneller geht, als ein Aufruf einer virtual function, die dann doch wieder einen Pointer zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218630</guid><dc:creator><![CDATA[GorbGorb]]></dc:creator><pubDate>Sat, 02 Jun 2012 19:19:38 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sun, 03 Jun 2012 09:56:13 GMT]]></title><description><![CDATA[<p>Das würde schon Sinn ergeben. Wenn man innherlab einer Klasse die static Methode einer abstrakten Klasse aufruft und sich nachher wünscht, dass die passende (überladene) Methode des aktuellen Objekts aufgerufen wird.<br />
Natürlich kann man auf static verzichten, aber falls nunmal keine abhängigkeiten zu einem Objekt an sich existieren wäre es auch schön wenn man ein static anhängen kann uns so von mehrfachvererbung und objektunabhängigkeit profitiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218759</guid><dc:creator><![CDATA[dgrat__]]></dc:creator><pubDate>Sun, 03 Jun 2012 09:56:13 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sun, 03 Jun 2012 10:00:03 GMT]]></title><description><![CDATA[<p>Klingt an sich konfus, wenn man zwar eine objektabh. methode aufrufen will aber keine abhängigkeit zu einem objekt hat (bsp. ausgabefunktion).<br />
Aber dieser Umstand würde doch ein neues schlüsselwort für c++ nahelegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218761</guid><dc:creator><![CDATA[dgrat__]]></dc:creator><pubDate>Sun, 03 Jun 2012 10:00:03 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Sun, 03 Jun 2012 10:16:45 GMT]]></title><description><![CDATA[<p>dgrat__ schrieb:</p>
<blockquote>
<p>Das würde schon Sinn ergeben. Wenn man innherlab einer Klasse die static Methode einer abstrakten Klasse aufruft und sich nachher wünscht, dass die passende (überladene) Methode des aktuellen Objekts aufgerufen wird.</p>
</blockquote>
<p>Das geht ganz einfach, indem du die Methode die die static Methode aufruft virtual machst und dann in der abgeleiteten Klasse überschreibst.</p>
<p>dgrat__ schrieb:</p>
<blockquote>
<p>Klingt an sich konfus, wenn man zwar eine objektabh. methode aufrufen will aber keine abhängigkeit zu einem objekt hat (bsp. ausgabefunktion).</p>
</blockquote>
<p>Was genau meinst du damit!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218771</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sun, 03 Jun 2012 10:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to static virtual als Memberfunktion on Mon, 04 Jun 2012 06:46:04 GMT]]></title><description><![CDATA[<p>dgrat__ schrieb:</p>
<blockquote>
<p>Wenn man innherlab einer Klasse die static Methode einer abstrakten Klasse aufruft und sich nachher wünscht, dass die passende (überladene) Methode des aktuellen Objekts aufgerufen wird.</p>
</blockquote>
<p>Warum rufst du nicht gleich die static Methode der Klasse des aktuellen Objektes auf? Vielleicht brauchen wir etwas Code, um dich richtig zu verstehen. Und zwar kein verkümmertes Beispiel sondern etwas, was uns dein eigentliches Problem deutlich macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2219047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2219047</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 04 Jun 2012 06:46:04 GMT</pubDate></item></channel></rss>