<?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[Objekte von allen erbenden Klassen erstellen]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn eine Klasse X gegeben ist, ist es möglich Objekte von allen von X erbenden Klassen zu erzeugen, ohne die konkreten Namen dieser Klassen zu kennen?</p>
<p>Wenn nicht, gibt es dann ein Design Pattern um dies so zu erledigen, dass es möglich ist, weitere erbende Klassen später so in den Code einzufügen, dass es möglichst wenige zu modifizierende Codestellen gibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/271464/objekte-von-allen-erbenden-klassen-erstellen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 12:53:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271464.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Jul 2010 16:25:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekte von allen erbenden Klassen erstellen on Wed, 28 Jul 2010 16:25:51 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn eine Klasse X gegeben ist, ist es möglich Objekte von allen von X erbenden Klassen zu erzeugen, ohne die konkreten Namen dieser Klassen zu kennen?</p>
<p>Wenn nicht, gibt es dann ein Design Pattern um dies so zu erledigen, dass es möglich ist, weitere erbende Klassen später so in den Code einzufügen, dass es möglichst wenige zu modifizierende Codestellen gibt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933221</guid><dc:creator><![CDATA[Andreas XXL]]></dc:creator><pubDate>Wed, 28 Jul 2010 16:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte von allen erbenden Klassen erstellen on Wed, 28 Jul 2010 16:30:31 GMT]]></title><description><![CDATA[<p>Andreas XXL schrieb:</p>
<blockquote>
<p>wenn eine Klasse X gegeben ist, ist es möglich Objekte von allen von X erbenden Klassen zu erzeugen, ohne die konkreten Namen dieser Klassen zu kennen?</p>
</blockquote>
<p>Nein. Warum willst du von allen abgeleiteten Klassen Objekte erstellen, ohne diese zu kennen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933224</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Jul 2010 16:30:31 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte von allen erbenden Klassen erstellen on Wed, 28 Jul 2010 16:36:30 GMT]]></title><description><![CDATA[<p>Factory Pattern?</p>
<p>Automatisch gehts jedenfalls nicht, du musst zumindest pro Klasse eine Objekte erzeugende Funktion von Hand in einer Liste registrieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933225</guid><dc:creator><![CDATA[Nukularfüsiker]]></dc:creator><pubDate>Wed, 28 Jul 2010 16:36:30 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte von allen erbenden Klassen erstellen on Wed, 28 Jul 2010 16:40:30 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Andreas XXL schrieb:</p>
<blockquote>
<p>wenn eine Klasse X gegeben ist, ist es möglich Objekte von allen von X erbenden Klassen zu erzeugen, ohne die konkreten Namen dieser Klassen zu kennen?</p>
</blockquote>
<p>Nein. Warum willst du von allen abgeleiteten Klassen Objekte erstellen, ohne diese zu kennen?</p>
</blockquote>
<p>Naja, ich hatte die Idee, Klassen so zu entwerfen, dass sie sich selbst übers Netzwerk versenden können. Dazu gibt es eine Oberklasse X, die eine virtuelle eindeutige ID hat die die Klasse identifiziert. Davon soll jede versendbare Klasse erben.<br />
Nun wollte ich, dass am Zielrechner (der natürlich die Definitionen der Klassen hat) den empfangenen Datenstrom wieder in Objekte dieser Klassen umwandeln.<br />
Ich wollte es so machen, dass der Anwender neue zu versendende Klassen als von X erbend hinzufügen kann ohne im Code zum Versenden und Empfangen der Klassen etwas ändern zu müssen.<br />
Und genau hier ist das Problem, dass ich ja nicht weiß, wie die zu erbenden Klassen heißen werden die der Benutzer hinzufügen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933228</guid><dc:creator><![CDATA[Andreas XXL]]></dc:creator><pubDate>Wed, 28 Jul 2010 16:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte von allen erbenden Klassen erstellen on Wed, 28 Jul 2010 16:46:44 GMT]]></title><description><![CDATA[<p>Geschieht das Hinzufügen während der Laufzeit? Dann hast du ja einen Codepunkt, wo du auch gleich deine Klasse &quot;versenden&quot; kannst.<br />
Ansonsten hast du die Userdefinierten Klassen irgendwo gespeichert. Eine eigene Routine bei Programmstartup sollte diese Speicherorte abklappern können und versenden.<br />
Wie wäre es mit einem zusätzlichen Description-file, welches die Klassen beschriebt? (Name, abgeleitet von, ...) Dann kannst du dir ein Instanziieren schenken.</p>
<p>Wie wäre es, wenn du Scripting-Erweiterungen einbaust? Dann kannst du sogar Klassen versenden, ohne dass am Zielrechner eine Definition bekannt sein muss :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933230</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 28 Jul 2010 16:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte von allen erbenden Klassen erstellen on Wed, 28 Jul 2010 16:48:53 GMT]]></title><description><![CDATA[<p>Andreas XXL schrieb:</p>
<blockquote>
<p>Nun wollte ich, dass am Zielrechner (der natürlich die Definitionen der Klassen hat) den empfangenen Datenstrom wieder in Objekte dieser Klassen umwandeln.</p>
</blockquote>
<p>Das ist nicht möglich, wenn die dynamischen Typen nicht bekannt sind. Du kannst zwar abstrakt mit den Objekten arbeiten, aber wenn du sie als Objekte der konkreten abgeleiteten Klasse behandeln willst, musst du die entsprechende Klasse kennen (zur Kompilierzeit), da du um einen Downcast nicht herum kommst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933231</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 28 Jul 2010 16:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte von allen erbenden Klassen erstellen on Wed, 28 Jul 2010 20:04:00 GMT]]></title><description><![CDATA[<p>Andreas XXL schrieb:</p>
<blockquote>
<p>Naja, ich hatte die Idee, Klassen so zu entwerfen, dass sie sich selbst übers Netzwerk versenden können. Dazu gibt es eine Oberklasse X, die eine virtuelle eindeutige ID hat die die Klasse identifiziert. Davon soll jede versendbare Klasse erben.</p>
</blockquote>
<p>Ja das ist möglich. Wenn du das Problem mit der Serialisierung gelöst hast, sollte so eine Art Klassenregistierung für dich überhaupt kein Problem darstellen.</p>
<p>Natürlich stellt sich jeder unter dem Begriff &quot;automatisch&quot; etwas anderes vor. Deshalb sind einige hier auch der Meinung, das es automatisch nicht gehe.</p>
<p>Aber da man ja zwingend ableiten muss, kannst du gewisse Funktionen erzwingen, somit sehe ich da eigentlich keine großen Schwierigkeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933307</guid><dc:creator><![CDATA[nurf]]></dc:creator><pubDate>Wed, 28 Jul 2010 20:04:00 GMT</pubDate></item></channel></rss>