<?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[Warum geht nur ein Pointer auf eine abstrakte Klasse]]></title><description><![CDATA[<p>Hi</p>
<p>Ich habe eine abstrakte Klasse Moveable. Die abstrakte Klasse Sprite soll ein Objekt des Typs Moveable haben.</p>
<p>Wenn ich das so mache gehts:</p>
<pre><code class="language-cpp">class Sprite
{
private:

	Moveable * move_instance;

};
</code></pre>
<p>Das hier funktioniert jedoch nicht:</p>
<pre><code class="language-cpp">class Sprite
{
private:

	Moveable move_instance;

};
</code></pre>
<p>Mir ist eigentlich schon klar, was der Unterschied zwischen den beiden ist (hoffe ich zumindest ^^). Könnte mir bitte jemand erklären warum das zweite nicht funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/271315/warum-geht-nur-ein-pointer-auf-eine-abstrakte-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 14:01:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271315.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Jul 2010 12:41:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Warum geht nur ein Pointer auf eine abstrakte Klasse on Mon, 26 Jul 2010 12:41:45 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>Ich habe eine abstrakte Klasse Moveable. Die abstrakte Klasse Sprite soll ein Objekt des Typs Moveable haben.</p>
<p>Wenn ich das so mache gehts:</p>
<pre><code class="language-cpp">class Sprite
{
private:

	Moveable * move_instance;

};
</code></pre>
<p>Das hier funktioniert jedoch nicht:</p>
<pre><code class="language-cpp">class Sprite
{
private:

	Moveable move_instance;

};
</code></pre>
<p>Mir ist eigentlich schon klar, was der Unterschied zwischen den beiden ist (hoffe ich zumindest ^^). Könnte mir bitte jemand erklären warum das zweite nicht funktioniert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1931983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1931983</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Mon, 26 Jul 2010 12:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to Warum geht nur ein Pointer auf eine abstrakte Klasse on Mon, 26 Jul 2010 12:45:15 GMT]]></title><description><![CDATA[<p>Die Klasse ist abstrakt, also können keine Instanzen davon erzeugt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1931986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1931986</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 26 Jul 2010 12:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to Warum geht nur ein Pointer auf eine abstrakte Klasse on Mon, 26 Jul 2010 12:48:45 GMT]]></title><description><![CDATA[<p>Das ist mir klar, dass ich keine Instanzen davon erzeugen darf.</p>
<p>Aber wiso funktioniert es mit dem Pointer und warum mit dem anderen nicht? Könnte ich das hier nicht schreiben?</p>
<pre><code class="language-cpp">Moveable move_instance = PlayerMove(); // PlayerMove is derived from Moveable
</code></pre>
<p>Aber das hier schon:</p>
<pre><code class="language-cpp">Moveable * move_instance = new PlayerMove(); // PlayerMove is derived from Moveable
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1931987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1931987</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Mon, 26 Jul 2010 12:48:45 GMT</pubDate></item><item><title><![CDATA[Reply to Warum geht nur ein Pointer auf eine abstrakte Klasse on Mon, 26 Jul 2010 12:53:04 GMT]]></title><description><![CDATA[<p>&gt; Könnte ich das hier nicht schreiben?</p>
<p>Du kannst es schreiben, aber es wird nicht funktionieren. Du definierst ein Objekt vom Typ Moveable. Moveable ist aber abstrakt. Also geht's nicht. Punkt aus. Was erwartest Du denn, was da passieren soll? Denk mal für Dich darüber nach...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1931991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1931991</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 26 Jul 2010 12:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to Warum geht nur ein Pointer auf eine abstrakte Klasse on Mon, 26 Jul 2010 12:54:07 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Moveable move_instance = PlayerMove(); // PlayerMove is derived from Moveable
</code></pre>
</blockquote>
<p>Hier wird eine Instanz von Moveable erzeugt und mit einem default-konstruierten PlayerMove-Objekt initialisiert (d.h. dieses Objekt wird einem Konstruktor, normalerweise passt dort der Kopierkonstruktor, von Moveable übergeben.)<br />
Bzw. würde, wenn Moveable nicht abstrakt wäre.</p>
<blockquote>
<p>Aber das hier schon:</p>
<pre><code class="language-cpp">Moveable * move_instance = new PlayerMove(); // PlayerMove is derived from Moveable
</code></pre>
</blockquote>
<p>Hier wird nur ein Zeiger auf Moveable angelegt. Überhaupt kein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1931992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1931992</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 26 Jul 2010 12:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Warum geht nur ein Pointer auf eine abstrakte Klasse on Mon, 26 Jul 2010 13:11:22 GMT]]></title><description><![CDATA[<p>Vielen Dank euch zwei.</p>
<p>Mir war nicht bewusst, dass beim ersten eine Instanz erzeugt und initialisiert wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932003</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Mon, 26 Jul 2010 13:11:22 GMT</pubDate></item></channel></rss>