<?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[Wie löst man sowas am effektivsten?]]></title><description><![CDATA[<p>Heho,<br />
nehmen wir an ich habe n Objekte verschiedener Klassen, d.h. objekt A ist instanz von Klasse A1, Objekt B ist instanz von Klasse A2 usw, A1 und A2 hängen nicht weiter miteinander zusammen.<br />
Wie organisiere ich diese Objekte mit dem geringsten aufwand?</p>
<p>mit arrays von void zeigern? oder wie oder was? wenn ich nicht weiß welchen typ eine klasse haben wird, dann böten sich die ja an, aber die scheinen ja verpönt zu sein. Ansonsten n array von zeigern auf zeiger? oO</p>
<p>hoffe meine frage ist klar geworden, danke für eure antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/235285/wie-löst-man-sowas-am-effektivsten</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 06:09:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/235285.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Feb 2009 22:02:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Fri, 27 Feb 2009 22:02:35 GMT]]></title><description><![CDATA[<p>Heho,<br />
nehmen wir an ich habe n Objekte verschiedener Klassen, d.h. objekt A ist instanz von Klasse A1, Objekt B ist instanz von Klasse A2 usw, A1 und A2 hängen nicht weiter miteinander zusammen.<br />
Wie organisiere ich diese Objekte mit dem geringsten aufwand?</p>
<p>mit arrays von void zeigern? oder wie oder was? wenn ich nicht weiß welchen typ eine klasse haben wird, dann böten sich die ja an, aber die scheinen ja verpönt zu sein. Ansonsten n array von zeigern auf zeiger? oO</p>
<p>hoffe meine frage ist klar geworden, danke für eure antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671674</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671674</guid><dc:creator><![CDATA[Kingcools2]]></dc:creator><pubDate>Fri, 27 Feb 2009 22:02:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Fri, 27 Feb 2009 22:15:10 GMT]]></title><description><![CDATA[<p>Diese Frage stellen sich merkwürdigerweise viele in C++. Doch zwei Gegenfragen: Wie willst du die einzelnen Elemente ansprechen, wenn du deren Typen nicht kennst? Wieso speicherst du sie nicht separat, wenn sie sowieso nichts miteinander zu tun haben?</p>
<p>Falls sie doch ein wenig miteinander zu tun haben, kannst du Polymorphie mit einer Basisklasse nutzen. Ansonsten gäbe es noch Boost.Any bzw. Boost.Variant, aber ich bezweifle, dass du das brauchst. Kannst du einen konkreten Kontext beschreiben, in dem sich deine Frage stellt? Würde mich noch interessieren... <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/1671680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671680</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 27 Feb 2009 22:15:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Fri, 27 Feb 2009 23:02:43 GMT]]></title><description><![CDATA[<p>Wenn du unbedingt alle Elemente so speichern musst/willst, dann ginge das über void Zeiger ja. Allerdings ist es sehr unwahrscheinlich, dass du das wirklich musst. Wenn du das nämlich machst, musst du, wenn du die Objekte wieder brauchen willst wiederen den richtigen Typ auswählen, was alleine über das void nicht so leicht geht. Das heisst, dass du das Laufzeittypsystem benutzen musst, was aber viel eleganter über Vererbung (und dann halt mit konkreten Zusammenhängen) geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671705</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 27 Feb 2009 23:02:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Fri, 27 Feb 2009 23:24:36 GMT]]></title><description><![CDATA[<p>vielen dank shconmal, ich muss gestehen, dass sie ein bisschen schon miteinander zu tun haben, jedoch wollte ich antworten wie &quot;warum benutzt du dann nicht zeiger auf basis klasse&quot; die sicher trotz suche nach anderen möglichkeiten gegeben worden wäre ^^</p>
<p>ok konkreter Fall:</p>
<p>ich versuche mich(aus reiner freude und zu übungszwecken) darin MUGEN(<a href="http://en.wikipedia.org/wiki/M.U.G.E.N.)" rel="nofollow">http://en.wikipedia.org/wiki/M.U.G.E.N.)</a>, eine beat em up engine, nachzuprogrammieren.<br />
Dabei befindet sich ein Spieler immer in einem gewissen Zustand, einer &quot;state&quot;.<br />
Hier mal n beispiel codefetzen</p>
<p>&quot;[StateDef 200]<br />
anim = 200<br />
ctrl = 0<br />
type = S<br />
movetype = A ;*** Add this line ***<br />
physics = S<br />
velset = 0,0</p>
<p>;*** Add this new block ***<br />
[State 200, HitDef]<br />
type = HitDef<br />
trigger1 = Time = 0 ;Activate at time = 0 (start of state)<br />
attr = S, NA ;Attributes of the HitDef (explained later)<br />
damage = 30 ;Damage points to deal<br />
;*** End of new block ***</p>
<p>[State 200, 1]<br />
type = ChangeState<br />
trigger1 = AnimTime = 0<br />
value = 0<br />
ctrl = 1<br />
&quot;</p>
<p>vom type der state hängt ab, welche codewörter man danach noch verwenden und definieren darf. Gäbe zwei Möglichkeiten mit Klassen das ganze nachzubilden:<br />
entweder alle statetypen in einem, was aber ein ziemliches chaos wäre, oder wie du das angeschnitten hast und ich es machen wollte, jeder statetypus wird zu einer eigenen klasse mit ner simplen Basisklasse die nur die elemente &quot;trigger&quot; und &quot;type&quot; enthält.</p>
<p>So, das werde ich vermutlich auch so tun, da du mir den tipp gegeben hast(den ich auch schon ergoogelt hatte :P). aber mich interessieren andere lösungen für so ein problem ^^(die engine ist btw ursprünglich in C mit allegro geschrieben worden)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671723</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Fri, 27 Feb 2009 23:24:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Fri, 27 Feb 2009 23:31:07 GMT]]></title><description><![CDATA[<p>Du könntest das ganze natürlich auch völlig dynamisch machen und z.B lediglich mit Strings arbeiten, die du dann halt irgendwie interpretierst.<br />
Je nachdem, wie erweiterbar das ganze sein soll wäre das sicher eine Möglichkeit. Anderseits bieten sich da auch Skriptsprachen, wie z.B Lua an, die für solche Sachen recht praktisch sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671729</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 27 Feb 2009 23:31:07 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Fri, 27 Feb 2009 23:33:50 GMT]]></title><description><![CDATA[<p>Deinen Code verstehe ich nicht ganz (nicht zuletzt, weil es nicht C++ ist); zumindest erschliesst sich mir der Zusammenhang zur Frage nicht sofort.</p>
<p>Mit Klassen fährt man aber grundsätzlich nicht schlecht, wenn du mal einen Ansatz hast, kannst du ja immer noch weiter schauen. Je nach Anwendungsfall (wenn es eher um Daten(-sätze) geht) wäre vielleicht auch <code>std::map</code> eine Möglichkeit für Fallunterscheidungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671733</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 27 Feb 2009 23:33:50 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Sat, 28 Feb 2009 00:16:42 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a> das stimmt zwar, aber mich juckt immer die schnelligkeit davon^^ zwar ist das in meinem fall ziemlich egal, da die grafik sehr simpel ist, aber ich hab da quasi einen &quot;geschwindigskeitsfetisch&quot;, versuch mich schon zu bremsen, da mir das noch realtiv egal sein darf.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12954">@Nexus</a></p>
<p>Nun, der gepostete Code ist ein beispiel der skriptsprache besagter Engine, welchen ich interpretieren muss, da ich alten code wiederverwenden möchte.<br />
Da es nur endlich viele statetypen gibt, und die sehr gut von beiliegenden dokumentne beschrieben werden, dachte ich mir ich baue einzelne klassen aus ihnen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671753</guid><dc:creator><![CDATA[Kingcools2]]></dc:creator><pubDate>Sat, 28 Feb 2009 00:16:42 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Sat, 28 Feb 2009 00:24:49 GMT]]></title><description><![CDATA[<p>Kingcools2 schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a> das stimmt zwar, aber mich juckt immer die schnelligkeit davon^^ zwar ist das in meinem fall ziemlich egal, da die grafik sehr simpel ist, aber ich hab da quasi einen &quot;geschwindigskeitsfetisch&quot;, versuch mich schon zu bremsen, da mir das noch realtiv egal sein darf.</p>
</blockquote>
<p>Das verstehe ich, allerdings würde ich mir da nicht allzuviele Gedanken machen, aber die Standardbibliothek und die Klassen sind normalerweise recht schnell. (So schnell, dass man praktisch nichts von ihnen spürt, wenn man eine Grafikanwendung hat. Im Relase natürlich).</p>
<p>Und die Entwicklungszeit, die du an Klassen kopieren usw. &quot;verschwendest&quot; könntest du ev. wo anderst gebrauchen, wenn du gleich etwas dynamischeres hast. Aber für den Lerneffekt kannst du es natürlich schon auch mit Klassen machen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Wirst aber früher, oder später merken, was ich meine. <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/1671756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671756</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 28 Feb 2009 00:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wie löst man sowas am effektivsten? on Sat, 28 Feb 2009 00:37:13 GMT]]></title><description><![CDATA[<p>ok ^^ ich denk dann an dich, vielen dank euch beiden, werds dann mit der basisklasse probieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1671759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1671759</guid><dc:creator><![CDATA[kingcools2]]></dc:creator><pubDate>Sat, 28 Feb 2009 00:37:13 GMT</pubDate></item></channel></rss>