<?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[Template und statische Methode in virtueller Klasse]]></title><description><![CDATA[<p>Guten Tag,<br />
ich habe ein Template das von einer Klasse erwartet die statische Methode &quot;T::foo()&quot; bereitzustellen. Ich habe nun eine virtuelle Basisklasse die sowohl sich wiederholende Methoden, sowie eine Vorlage für die abgeleitete Klassen darstellen soll. Mit Vorlage ist dabei gemeint, das ich Benutzer der Basisklasse zwingen möchte eine statische Methode foo() in ihrer Abgeleiteten Klasse zu erstellen. Dies ist jedoch nicht möglich, statische virtuelle Methoden gibt es nicht, nichtmal wenn diese rein virtuell sind also keine Definition beinhalten. Meine Frage ist nun wie ich dieses offensichtliche Design Problem umschiffen kann. Oder ob es womöglich zuviel des &quot;guten&quot; ist den Nutzer mit einem Compiler Fehler und offensichtlichem Code zu zwingen und die Fehlermeldung vom Template vielleicht reicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302471/template-und-statische-methode-in-virtueller-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 07:43:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302471.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Apr 2012 12:17:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template und statische Methode in virtueller Klasse on Thu, 19 Apr 2012 12:17:21 GMT]]></title><description><![CDATA[<p>Guten Tag,<br />
ich habe ein Template das von einer Klasse erwartet die statische Methode &quot;T::foo()&quot; bereitzustellen. Ich habe nun eine virtuelle Basisklasse die sowohl sich wiederholende Methoden, sowie eine Vorlage für die abgeleitete Klassen darstellen soll. Mit Vorlage ist dabei gemeint, das ich Benutzer der Basisklasse zwingen möchte eine statische Methode foo() in ihrer Abgeleiteten Klasse zu erstellen. Dies ist jedoch nicht möglich, statische virtuelle Methoden gibt es nicht, nichtmal wenn diese rein virtuell sind also keine Definition beinhalten. Meine Frage ist nun wie ich dieses offensichtliche Design Problem umschiffen kann. Oder ob es womöglich zuviel des &quot;guten&quot; ist den Nutzer mit einem Compiler Fehler und offensichtlichem Code zu zwingen und die Fehlermeldung vom Template vielleicht reicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203634</guid><dc:creator><![CDATA[konfuziusconfused]]></dc:creator><pubDate>Thu, 19 Apr 2012 12:17:21 GMT</pubDate></item><item><title><![CDATA[Reply to Template und statische Methode in virtueller Klasse on Thu, 19 Apr 2012 13:00:04 GMT]]></title><description><![CDATA[<p>Warum muss es den unbedingt eine statische Methode sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203652</guid><dc:creator><![CDATA[Helmut.Jakoby]]></dc:creator><pubDate>Thu, 19 Apr 2012 13:00:04 GMT</pubDate></item><item><title><![CDATA[Reply to Template und statische Methode in virtueller Klasse on Thu, 19 Apr 2012 13:07:52 GMT]]></title><description><![CDATA[<p>Die Template Klasse erzeugt keine Instanz der Basis/Abgeleiteten Klasse. Alle nötigen Informationen könnten über statische Methoden übergeben werden, da diese sich auch bei unterschiedlichen Instanzen nicht unterscheiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203655</guid><dc:creator><![CDATA[konfuziusconfused]]></dc:creator><pubDate>Thu, 19 Apr 2012 13:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to Template und statische Methode in virtueller Klasse on Thu, 19 Apr 2012 13:38:19 GMT]]></title><description><![CDATA[<p>Wofür genau brauchst du diese statische Methode? Eine virtuelle statische Methode macht keinen Sinn, daher gibt es sowas natürlich nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203669</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 19 Apr 2012 13:38:19 GMT</pubDate></item><item><title><![CDATA[Reply to Template und statische Methode in virtueller Klasse on Thu, 19 Apr 2012 14:22:35 GMT]]></title><description><![CDATA[<p>Es heißt Klassentemplate.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203695</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 19 Apr 2012 14:22:35 GMT</pubDate></item><item><title><![CDATA[Reply to Template und statische Methode in virtueller Klasse on Thu, 19 Apr 2012 15:16:09 GMT]]></title><description><![CDATA[<p>Ich interpretiere das mal so: Du willst also statische Methoden, weil diese sich für die einzelnen Instanzen nicht unterscheiden. Nichtstatische Methoden unterscheiden sich für die einzelnen Instanzen einer Klasse auch nicht, werden also in allen Instanzen gleichermaßen ausgeführt (das ist ja auch irgendwo der Sinn dahinter). Die Unterschiede sind ggf. in den Attribut- bzw. Übergabeparameterwerten zu finden.<br />
Wenn Du also möchtest, dass eine Methode foo() in Unterklassen geschrieben werden sollen, ergo sich wahrscheinlich in foo() anders verhalten sollen, muss diese Methode in der Oberklasse 'pure virtual' deklariert sein.<br />
Ich persönlich nutze statische Methoden selten und nur in Klassen, wenn diese Methoden nichts mit einem Objekt (einer Instanz) der Klasse und seinen Werten zu hat.<br />
Ansonsten sagst Du, dass es von keiner Klasse Instanzen geben soll. Dann könnte ggf. das 'Singleton Class Pattern' für Dich interessant sein. Dann kannst Du mit virtuellen Methoden arbeiten und hast nur eine Instanz.<br />
Ansonsten sind Deine Ausführungen etwas dünn, weil Du nicht genau ausführst, was Du willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2203721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2203721</guid><dc:creator><![CDATA[Helmut.Jakoby]]></dc:creator><pubDate>Thu, 19 Apr 2012 15:16:09 GMT</pubDate></item></channel></rss>