<?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[Vererbung oder Templates?]]></title><description><![CDATA[<p>Hallo zusammen, ich bin ein relativer Neuling in C++ und würde gerne wissen was erfahrernere Leute zu meinem aktuellen Problem meinen (und wie man das problem vielleicht konziser formulieren könnte -&gt; recherche..)</p>
<p>Ich habe eine Klasse Netzwerk die im wesentlichen einen (gerichteten, gewichteten)Graphen, also vertices (n Stück )und kanten (n x n) abbilden soll. Dazu kommen noch Schnittstellen es zu manipulieren.<br />
Nun gibt es verschiedene Typen von Netzwerken die intern mit Boolschen werten , Integern oder Gleitkommazahlen arbeiten, die Schnittstellen bleiben aber im wesentlichen gleich.</p>
<p>Mit Templates hab ich das Problem ich nicht für jeden Typ die gleichen (member)Variablen und Funktionen brauche. Mit Vererbung habe ich das Problem dass ich Funktionen nicht mit verschiedenen Rückgabewerten überschreiben kann.</p>
<p>Kennt wer von euch Problemstellungen dieser Art und Lösungsmuster dazu? Eine Zeitlang dachte ich mir policy classes könnte ich dem bekommen,hatte aber bisher keinen erfolg..</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288129/vererbung-oder-templates</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 03:16:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288129.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 10 Jun 2011 17:18:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:18:50 GMT]]></title><description><![CDATA[<p>Hallo zusammen, ich bin ein relativer Neuling in C++ und würde gerne wissen was erfahrernere Leute zu meinem aktuellen Problem meinen (und wie man das problem vielleicht konziser formulieren könnte -&gt; recherche..)</p>
<p>Ich habe eine Klasse Netzwerk die im wesentlichen einen (gerichteten, gewichteten)Graphen, also vertices (n Stück )und kanten (n x n) abbilden soll. Dazu kommen noch Schnittstellen es zu manipulieren.<br />
Nun gibt es verschiedene Typen von Netzwerken die intern mit Boolschen werten , Integern oder Gleitkommazahlen arbeiten, die Schnittstellen bleiben aber im wesentlichen gleich.</p>
<p>Mit Templates hab ich das Problem ich nicht für jeden Typ die gleichen (member)Variablen und Funktionen brauche. Mit Vererbung habe ich das Problem dass ich Funktionen nicht mit verschiedenen Rückgabewerten überschreiben kann.</p>
<p>Kennt wer von euch Problemstellungen dieser Art und Lösungsmuster dazu? Eine Zeitlang dachte ich mir policy classes könnte ich dem bekommen,hatte aber bisher keinen erfolg..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076501</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:20:28 GMT]]></title><description><![CDATA[<p>Templates mit Template-Spezialisierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076502</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:20:28 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:22:57 GMT]]></title><description><![CDATA[<p>Templates.<br />
Mir scheint keine gemeinsame Basisklasse sinnvoll zu sein. Welche Bedeutung hätte die?</p>
<p>Mit policy classes wird es klappen. Oder mit SFINAE. Was davon häßlicher ist, hängt vom Einzelfall ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076504</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:22:57 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:24:54 GMT]]></title><description><![CDATA[<p>M10n schrieb:</p>
<blockquote>
<p>Nun gibt es verschiedene Typen von Netzwerken die intern mit Boolschen werten , Integern oder Gleitkommazahlen arbeiten, die Schnittstellen bleiben aber im wesentlichen gleich.</p>
</blockquote>
<p>Warum bleiben sie nicht ganz gleich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076505</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:24:54 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:25:54 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Warum bleiben sie nicht ganz gleich?</p>
</blockquote>
<p>Ich tippe auf Design-Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076506</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:35:19 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Warum bleiben sie nicht ganz gleich?</p>
</blockquote>
<p>Ich tippe auf Design-Fehler.</p>
</blockquote>
<p>Nun , das kann ich noch nciht ganz ausschließen. Die Algorithmen die auf einem Netzwerk&lt;float&gt; angewandt werden beinhalten eine zusätzliche Funktion setEdgeValue(float val, int edge), während die Boolsch variante nur invertEdge(int edge) hat( jetzt nicht am namen aufhängen, toggleEdge(..) ist wahrscheinlich besser.. setzt halt die wichtung von true auf false und umgekehrt),was bei floats keinen sinn macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076512</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:35:19 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:39:07 GMT]]></title><description><![CDATA[<p>Könnte <code>invertEdge()</code> nicht auch für <code>float</code> -Graphen verwendet werden und einfach das Kantengewicht negieren?</p>
<p>Ansonsten, wenn es zwei verschiedene Funktionalitäten sind, musst du sie nicht vereinen. In welchem Kontext willst du beide Funktionen überhaupt einheitlich ansprechen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076515</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:43:38 GMT]]></title><description><![CDATA[<p>also ein gemeinsames</p>
<pre><code class="language-cpp">T&amp; edgeValue();
</code></pre>
<p>und die Benutzung beim bool ist</p>
<pre><code class="language-cpp">bla.edgeValue()=!bla.edgeValue();
</code></pre>
<p>und</p>
<pre><code class="language-cpp">bla.edgeValue()=val;
</code></pre>
<p>oder sowas. Und Graf kann Graf bleiben, ohne zu wissen, was drin ist.<br />
edit:</p>
<pre><code class="language-cpp">toggle(bla.edgeValue());
</code></pre>
<p>mit</p>
<pre><code class="language-cpp">void toggle(bool&amp; b);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2076516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076516</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:43:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 17:49:04 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>In welchem Kontext willst du beide Funktionen überhaupt einheitlich ansprechen?</p>
</blockquote>
<p>Nun, bei DEN Funktionen wird sich auch der Kontext an der Stelle ändern müssen, aber eben nur da. Der Rest kann übernommen werden , so dann man zumindest mal aussagen treffen kann in wiefern sich die leistungsfähigkeit der Netze ändern kann (je nach implementierungstyp)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076521</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Fri, 10 Jun 2011 17:49:04 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Fri, 10 Jun 2011 23:39:13 GMT]]></title><description><![CDATA[<p>Vielen Dank Leute, fürs erste funktionierts..(templates und eben spezialisierung für die einzelnen typen. ) für weitere Designfragen lieber n neuen Thread oder hier?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076590</guid><dc:creator><![CDATA[M10n]]></dc:creator><pubDate>Fri, 10 Jun 2011 23:39:13 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung oder Templates? on Sat, 11 Jun 2011 02:44:33 GMT]]></title><description><![CDATA[<p>M10n schrieb:</p>
<blockquote>
<p>für weitere Designfragen lieber n neuen Thread oder hier?</p>
</blockquote>
<p>Wenns weiter um diese Graphen-Klassen und ihre Implementierung als Template geht, dann hier.<br />
Wenns ein anderes Thema ist, dann nen neuen Thread.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2076600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2076600</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 11 Jun 2011 02:44:33 GMT</pubDate></item></channel></rss>