<?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[container mit pointern zu eigener klasse]]></title><description><![CDATA[<p>folgendes problem, ich habe einen suchgraphen<br />
und die knoten sind in etwa so implementiert</p>
<pre><code class="language-cpp">class SearchState
{
std::vector&lt;SearchState *&gt; m_next_states;
}
</code></pre>
<p>der vector gibt halt an, welche übergänge von dem knoten möglich sind<br />
ich wollte nun folgendes machen :</p>
<pre><code class="language-cpp">class SearchState_Trace : public SearchState
{
};
</code></pre>
<p>womit ich beim suchen den pfad festhalten kann</p>
<p>und stehe nun aber vor dem problem, das ich ALLES neu schreiben müsste,<br />
weil ich ja nun den vector aus der base-klasse nichtmehr benutzen kann,<br />
und eigentlich wollte ich die funktionen zum aufbauen und und abbauen des<br />
graphen ja beibehalten ...</p>
<p>am besten wäre sowas wie ein<br />
std::vector&lt;Self *&gt; m_next_states;<br />
gibts sowas?</p>
<p>virtual kommt nicht in frage, weil ich dann befürchte das die base-class<br />
zu langsam wird, ehr nehm ich die code-duplication in kauf und schreibe<br />
alles für den tracer neu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207029/container-mit-pointern-zu-eigener-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 22:06:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207029.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Mar 2008 23:11:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to container mit pointern zu eigener klasse on Sun, 02 Mar 2008 23:11:58 GMT]]></title><description><![CDATA[<p>folgendes problem, ich habe einen suchgraphen<br />
und die knoten sind in etwa so implementiert</p>
<pre><code class="language-cpp">class SearchState
{
std::vector&lt;SearchState *&gt; m_next_states;
}
</code></pre>
<p>der vector gibt halt an, welche übergänge von dem knoten möglich sind<br />
ich wollte nun folgendes machen :</p>
<pre><code class="language-cpp">class SearchState_Trace : public SearchState
{
};
</code></pre>
<p>womit ich beim suchen den pfad festhalten kann</p>
<p>und stehe nun aber vor dem problem, das ich ALLES neu schreiben müsste,<br />
weil ich ja nun den vector aus der base-klasse nichtmehr benutzen kann,<br />
und eigentlich wollte ich die funktionen zum aufbauen und und abbauen des<br />
graphen ja beibehalten ...</p>
<p>am besten wäre sowas wie ein<br />
std::vector&lt;Self *&gt; m_next_states;<br />
gibts sowas?</p>
<p>virtual kommt nicht in frage, weil ich dann befürchte das die base-class<br />
zu langsam wird, ehr nehm ich die code-duplication in kauf und schreibe<br />
alles für den tracer neu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467028</guid><dc:creator><![CDATA[Treb]]></dc:creator><pubDate>Sun, 02 Mar 2008 23:11:58 GMT</pubDate></item><item><title><![CDATA[Reply to container mit pointern zu eigener klasse on Sun, 02 Mar 2008 23:27:12 GMT]]></title><description><![CDATA[<p>Treb schrieb:</p>
<blockquote>
<p>virtual kommt nicht in frage, weil ich dann befürchte das die base-class<br />
zu langsam wird, ehr nehm ich die code-duplication in kauf und schreibe<br />
alles für den tracer neu</p>
</blockquote>
<p>Befuerchtungen sind selten angebracht, ausser du hast damit bereits Erfahrungen gesammelt. Bevor du befuerchtest, dass virtual deine Klasse zu langsam macht, miss es nach. Man ist oft ueberrascht, wo die Engstellen tatsaechlich liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467032</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Sun, 02 Mar 2008 23:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to container mit pointern zu eigener klasse on Mon, 03 Mar 2008 07:51:25 GMT]]></title><description><![CDATA[<p>Treb schrieb:</p>
<blockquote>
<p>virtual kommt nicht in frage, weil ich dann befürchte das die base-class zu langsam wird, ...</p>
</blockquote>
<p>Wenn dir ein Profiler tatsächlich sagt das dies der Flaschenhals ist, akzeptiere ich diese Aussage. Ansonsten solltest du dich an eine Regel halten: Versuche niemals im Vorfeld zu Optimieren, du wirst nicht selten die falschen Stellen erwischen. Es gibt eine 90:10 Regel (oder 80:20) die auf nahezu alles in der Informatik trift. In diesen Fall: In 90% der Fälle erwischt du eine Stelle die kein Flaschenhals darstellt.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467096</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 03 Mar 2008 07:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to container mit pointern zu eigener klasse on Mon, 03 Mar 2008 08:50:41 GMT]]></title><description><![CDATA[<p>Treb schrieb:</p>
<blockquote>
<p>...<br />
virtual kommt nicht in frage, weil ich dann befürchte das die base-class<br />
zu langsam wird, ehr nehm ich die code-duplication in kauf und schreibe<br />
alles für den tracer neu</p>
</blockquote>
<p><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="🙄"
    /><br />
Woher kommt eigentlich diese &quot;virtual performance panic&quot; ?<br />
Gerade heutzutage, wo in der Woche, die man für 2% Performancegewinn durch &quot;code duplication&quot; bräuchte, bereits die neue Rechnergeneration über den Ladentisch wandert, die 30% Performancegewinn liefert.</p>
<p>Und dann tut jeder so, als ob<br />
a) er immer gerade an der neuen Terraforming-Modellierung arbeitet,<br />
b) er ganz locker eine schnellere/bessere/flexiblere Technik aus dem Handgelenk schüttelt als die ganzen Heere von Compilerentwicklern und<br />
b) gleichzeitig seine Arbeitszeit (die er mit Neuerfindung des Rades und Wartung unwartbaren Codes verschwendet) nichts wert sei.</p>
<p>Wozu wurde überhaupt Ableitung in C++ erfunden, wenn nicht wegen der Laufzeitpolymorphie mit virtual ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467119</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 03 Mar 2008 08:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to container mit pointern zu eigener klasse on Mon, 03 Mar 2008 10:43:14 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Wozu wurde überhaupt Ableitung in C++ erfunden, ...</p>
</blockquote>
<p>Damit der Diskussionsstoff nicht ausgeht <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>
<p>Scherz beiseite. Ich finde hier auch häufig einige Performanceängste übertrieben. Okay, wenn das Programm wirklich langsam ist, sollte man etwas verändern, aber erst dann. Ich gehe sogar noch weiter: Sofern es der Lesbarkeit und Wartbarkeit des Codes beiträgt baue ich auch mal eine weitere Indirektion ein. Ändern (falls es wirklich ein Flaschenhals sein sollte) kann ich es immer noch.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467173</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 03 Mar 2008 10:43:14 GMT</pubDate></item><item><title><![CDATA[Reply to container mit pointern zu eigener klasse on Mon, 03 Mar 2008 13:12:14 GMT]]></title><description><![CDATA[<p>was ihr sagt ist wohl richtig, nur :<br />
wenn ich schon weiss, das ich ca 100mal pro sekunde<br />
so einen suchbaum durchsuchen muss, das ganze also zu 100% der<br />
flaschenhals wird</p>
<p>habe ich natürlich im hinterkopf, das es perfomant programmiert werden<br />
sollte, und dann möchte ich nicht etwas vom design so entwickeln,<br />
das man es später schwer optimieren kann</p>
<p>und mache mir vorher gedanken darüber ...</p>
<p>wenn ich eine gui-anwendung entwickle, wo man eh 99% der zeit auf mausklicks<br />
wartet, dann sieht die sache natürlich anders aus ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467275</guid><dc:creator><![CDATA[Treb]]></dc:creator><pubDate>Mon, 03 Mar 2008 13:12:14 GMT</pubDate></item><item><title><![CDATA[Reply to container mit pointern zu eigener klasse on Mon, 03 Mar 2008 13:34:59 GMT]]></title><description><![CDATA[<p>Treb schrieb:</p>
<blockquote>
<p>was ihr sagt ist wohl richtig, nur :<br />
wenn ich schon weiss, das ich ca 100mal pro sekunde<br />
so einen suchbaum durchsuchen muss, das ganze also zu 100% der<br />
flaschenhals wird</p>
</blockquote>
<p>Nicht unbedingt, da eine virtuelle Methode nur ein Indirektionsschritt ist, ist dies nicht Zwingend langsamer (In der Regel kann man das gegenüber der Laufzeit der eigentlichen Methode vernachlässigen).</p>
<p>Treb schrieb:</p>
<blockquote>
<p>und mache mir vorher gedanken darüber ...</p>
</blockquote>
<p>Was in 90% der Fälle eine falsche Stelle trifft, und das ist unabhängig ob du eine GUI Anwendung oder eine Konsolenanwendung entwickelst.</p>
<blockquote>
<p>&quot;We should forget about small efficiencies, say about 97% of the time: PrematureOptimization is the root of all evil.&quot;</p>
</blockquote>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1467290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1467290</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 03 Mar 2008 13:34:59 GMT</pubDate></item></channel></rss>