<?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[Instanz erstellen, ohne Klasse zu kennen]]></title><description><![CDATA[<p>Hi,</p>
<p>folgendes:</p>
<p>Gibt es eine Möglichkeit, ein Objekt zu erstellen, ohne dass man die Klasse kennt?</p>
<p>Um es etwas zu verdeutlichen:</p>
<p>Klasse1 ist abgeleitet von Klasse0. new Klasse1() würde mir eine Instanz liefern, aber ich kann/will diesen Aufruf nicht explizit ausführen. Ich weiss nur, dass die Klasse von Klasse0 abgeleitet ist, brauche aber eine Klasse1 Instanz.</p>
<p>Ich suche also eine Möglichkeit, Instanzen von Klasse1 zu erzeugen, ohne diese explizit zu kennen (im Gegensatz zu Klasse0, falls das was bringt).</p>
<p>Ist das technologisch überhaupt möglich? Geschwindigkeit spielt an diese Stelle keine Rolle.</p>
<p>VG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179138/instanz-erstellen-ohne-klasse-zu-kennen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 03:19:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179138.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Apr 2007 18:31:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Wed, 18 Apr 2007 18:31:49 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>folgendes:</p>
<p>Gibt es eine Möglichkeit, ein Objekt zu erstellen, ohne dass man die Klasse kennt?</p>
<p>Um es etwas zu verdeutlichen:</p>
<p>Klasse1 ist abgeleitet von Klasse0. new Klasse1() würde mir eine Instanz liefern, aber ich kann/will diesen Aufruf nicht explizit ausführen. Ich weiss nur, dass die Klasse von Klasse0 abgeleitet ist, brauche aber eine Klasse1 Instanz.</p>
<p>Ich suche also eine Möglichkeit, Instanzen von Klasse1 zu erzeugen, ohne diese explizit zu kennen (im Gegensatz zu Klasse0, falls das was bringt).</p>
<p>Ist das technologisch überhaupt möglich? Geschwindigkeit spielt an diese Stelle keine Rolle.</p>
<p>VG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268724</guid><dc:creator><![CDATA[xaoC]]></dc:creator><pubDate>Wed, 18 Apr 2007 18:31:49 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Wed, 18 Apr 2007 18:37:11 GMT]]></title><description><![CDATA[<p>naja ist nicht wirklich möglich ... soll der PC rätselraten was du da haben willst? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268727</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 18 Apr 2007 18:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Wed, 18 Apr 2007 18:38:06 GMT]]></title><description><![CDATA[<p>Beschreib doch mal, warum du glaubst, so etwas zu brauchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268728</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 18 Apr 2007 18:38:06 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Wed, 18 Apr 2007 19:07:04 GMT]]></title><description><![CDATA[<p>Ich würde gerne eine Factory erstellen, ohne diese für jedes Projekt anpassen zu müssen. Die Unterscheidung der konkreten Klassen ist nur über eine Typ-ID möglich, die in XML spezifiziert wurde.</p>
<p>Um solche Sachen wie</p>
<p>if (type == &quot;Typ1&quot;)<br />
pTyp=new Typ1()</p>
<p>zu vermeiden, wozu ich ja für jede neu Klasse Anpassungen vornehmen müsste, hatte ich mit dem Gedanken gespielt, in einem Objektpool alle möglichen Typen zu initialisieren. Die Typ-ID kennen die Typ-Klassen selbst.</p>
<p>Nachdem ich weiss, welche Typen ich benötige, werden die Typen ohne konkrete Referenzen wieder gelöscht, so dass nur noch Prototyp-Instanzen im Speicher liegen, von denen mittels Copy-ctor die benötigten Instanzen erzeugt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268745</guid><dc:creator><![CDATA[xaoC]]></dc:creator><pubDate>Wed, 18 Apr 2007 19:07:04 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Wed, 18 Apr 2007 19:25:07 GMT]]></title><description><![CDATA[<p>Suchst du das abstract factory pattern?</p>
<p>In der Loki-Bibliothek gibts ne fertige Implementierung dazu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268756</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Wed, 18 Apr 2007 19:25:07 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Wed, 18 Apr 2007 19:48:41 GMT]]></title><description><![CDATA[<p>Ich schaue mir das A.F.P. mal an. Bin mir aber nicht sicher ob es das ist.</p>
<p>Generell interessiert es mich trotzdem, ob der Sachverhalt aus meinem Eingangspost irgendwie doch funktionieren könnte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268778</guid><dc:creator><![CDATA[xaoC]]></dc:creator><pubDate>Wed, 18 Apr 2007 19:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Wed, 18 Apr 2007 20:11:04 GMT]]></title><description><![CDATA[<p>nein, das is imho nicht möglich.</p>
<p>Stell dir ma vor:<br />
Da kommt einer: &quot;Ich will eine Boeing 737 jetzt von dir haben, hier siehst du wie ein Flugzeug aufgebaut ist, den rest musst du die selber denken!&quot;</p>
<p>Also, ne das geht nicht. Der Compiler muss zum Zeitpunkt wissen, wie die Klasse aufgebaut ist, schon um genug Speicher für das Objekt zu allokieren.</p>
<p>Was evt. möglich ist, ist dass du einfach einen Speicherbereich der passenden Größe allokierst und das dann als dein Objekt interpretierst. Aber schlag dir das ausm Kopf, das geht nicht mit polymorphie und virtuellen funktionen wegen der vtable.</p>
<p>Also kurzum: Es geht nicht.<br />
Für deine Factory kannst ja Templates benutzen vielleicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1268796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268796</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Wed, 18 Apr 2007 20:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Thu, 19 Apr 2007 07:22:01 GMT]]></title><description><![CDATA[<p>kann mich den vorrednern nur anschließen.<br />
aber das factory pattern koentne da tatsächlich weiterhelfen.</p>
<p>wir haben mal zum spaß ein kleines CAD system geschrieben. in der ersten version war jeder objekttyp explizit angegeben:</p>
<p>create(Geo* geo):<br />
if(&quot;kreis&quot;) geo = new Kreis;<br />
else if(&quot;rect&quot;) geo = new Rect;</p>
<p>aenderewas(Geo* geo)<br />
if(dynamic_cast&lt;Kreis*&gt;(geo)) {...}<br />
else if(dynamic_cast&lt;Rect*&gt;(geo)) {...}<br />
...</p>
<p>sobald man neue typen hinzufügt und das programm extwas komplexer ist, dann sieht man da nicht mehr druch, wo man was änderen muss.<br />
jetzt hat jedes geoobject einen &quot;erzeuger&quot; und es gibt eine &quot;factory&quot;. zudem hat jeder Type eine &quot;typeID&quot; und eben eine menge allgemeiner methoden, so dass man im GUI teil ausschließlich mit der abstracten basisklasse arbeiten kann (selbst die icons im menü sind dadurch dynamisch, dialoge, etc. pp.)</p>
<p>nur falls du irgendwas ähnliches machen wolltest mit dem erzeugen unbekannter klassen <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/1268959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1268959</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Thu, 19 Apr 2007 07:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Thu, 19 Apr 2007 15:06:50 GMT]]></title><description><![CDATA[<p>Ja, es geht natürlich auch anders. Ich hätte den ganzen Kram nur gerne komplett aud die konkreten Klasen abgewälzt.</p>
<p>Was ist mit RTTI? Gibt es da etwas?</p>
<p>Kann gerade schlecht surfen, aber da haben Leute wohl etwas gebastelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269339</guid><dc:creator><![CDATA[xaoC@w]]></dc:creator><pubDate>Thu, 19 Apr 2007 15:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to Instanz erstellen, ohne Klasse zu kennen on Thu, 19 Apr 2007 20:53:09 GMT]]></title><description><![CDATA[<p>4yi: <a href="http://www.win.tue.nl/~alext/ALEX/C++/RTTI_DOC/rtti_doc.html" rel="nofollow">http://www.win.tue.nl/~alext/ALEX/C++/RTTI_DOC/rtti_doc.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1269631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1269631</guid><dc:creator><![CDATA[xaoC]]></dc:creator><pubDate>Thu, 19 Apr 2007 20:53:09 GMT</pubDate></item></channel></rss>