<?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[Oberklasse enthält Objekt der Unterklasse]]></title><description><![CDATA[<p>Hallo. Ich habe das Problem, dass ich von einer Klasse eine Unterklasse abgeleitet habe, diese jedoch in der Hauptklasse benötige (quasi als Head-Pointer).</p>
<p>So, wie es im Code unten zu sehen ist, wird die Klasse &quot;FolderDataHead&quot; vom Compiler nicht erkannt, da die Klassendefinition erst später erfolgt. Die kann ich auch nicht über die Hauptklasse schreiben, da dann die Ableitung nicht erfolgt. Genauso ist es mit verschiedenen Dateien und Cross-Includen. Geht alles nicht.</p>
<pre><code class="language-cpp">class FolderData{
	protected:
                FolderDataHead* foo;
                ...
};

class FolderDataHead: public FolderData {
	...
};
</code></pre>
<p>Ich weiß, dass ich (falls es sich um Funktionen handeln würde) die Definition ganz nach oben schreiben kann. Mit Klassen ist es mir bis jetzt nicht gelungen (habe nichts gefunden, vielleicht habe ich nicht die richtige Syntax benutzt).</p>
<p>Gibt es irgendwelche Möglichkeiten, das Problem zu lösen? Die Hardcoremethode wäre, den Quelltext der Hauptklasse einfach hard zu kopieren und die Klassen zu trennen, aber das ist erstens unsauber und außerdem funktionieren dann weitere Teile des Programmes nicht.</p>
<p>Kann mir dabei irgendjemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/212567/oberklasse-enthält-objekt-der-unterklasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 20:28:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212567.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 May 2008 19:22:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Oberklasse enthält Objekt der Unterklasse on Wed, 07 May 2008 19:22:54 GMT]]></title><description><![CDATA[<p>Hallo. Ich habe das Problem, dass ich von einer Klasse eine Unterklasse abgeleitet habe, diese jedoch in der Hauptklasse benötige (quasi als Head-Pointer).</p>
<p>So, wie es im Code unten zu sehen ist, wird die Klasse &quot;FolderDataHead&quot; vom Compiler nicht erkannt, da die Klassendefinition erst später erfolgt. Die kann ich auch nicht über die Hauptklasse schreiben, da dann die Ableitung nicht erfolgt. Genauso ist es mit verschiedenen Dateien und Cross-Includen. Geht alles nicht.</p>
<pre><code class="language-cpp">class FolderData{
	protected:
                FolderDataHead* foo;
                ...
};

class FolderDataHead: public FolderData {
	...
};
</code></pre>
<p>Ich weiß, dass ich (falls es sich um Funktionen handeln würde) die Definition ganz nach oben schreiben kann. Mit Klassen ist es mir bis jetzt nicht gelungen (habe nichts gefunden, vielleicht habe ich nicht die richtige Syntax benutzt).</p>
<p>Gibt es irgendwelche Möglichkeiten, das Problem zu lösen? Die Hardcoremethode wäre, den Quelltext der Hauptklasse einfach hard zu kopieren und die Klassen zu trennen, aber das ist erstens unsauber und außerdem funktionieren dann weitere Teile des Programmes nicht.</p>
<p>Kann mir dabei irgendjemand helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505123</guid><dc:creator><![CDATA[zottl]]></dc:creator><pubDate>Wed, 07 May 2008 19:22:54 GMT</pubDate></item><item><title><![CDATA[Reply to Oberklasse enthält Objekt der Unterklasse on Wed, 07 May 2008 19:30:11 GMT]]></title><description><![CDATA[<p>Hmm. Ich würde da mal ganz spontan auf forwar Declaration tippen, da du ja nur einen Zeiger darauf hast. Anderseits gäbe es auch noch polymorphie und eine gemeinsame Elternklasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505128</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 07 May 2008 19:30:11 GMT</pubDate></item><item><title><![CDATA[Reply to Oberklasse enthält Objekt der Unterklasse on Wed, 07 May 2008 19:45:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class FolderData{
    protected:
                class FolderDataHead* foo;

};

class FolderDataHead: public FolderData {

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1505138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505138</guid><dc:creator><![CDATA[ImFree]]></dc:creator><pubDate>Wed, 07 May 2008 19:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to Oberklasse enthält Objekt der Unterklasse on Wed, 07 May 2008 20:06:54 GMT]]></title><description><![CDATA[<p>ImFree schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class FolderData{
    protected:
                class FolderDataHead* foo;
                
};

class FolderDataHead: public FolderData {
    
};
</code></pre>
</blockquote>
<p>Ist Vererbung denn hier überhaupt das Mittel der Wahl?<br />
Vielleicht wäre eine Aggregation hier besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505148</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 07 May 2008 20:06:54 GMT</pubDate></item><item><title><![CDATA[Reply to Oberklasse enthält Objekt der Unterklasse on Wed, 07 May 2008 20:08:13 GMT]]></title><description><![CDATA[<p>danke. vorletzteres hat geklappt.</p>
<p>was eine aggregation ist, muss ich wohl nochmal nachschauen <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>rein aus interesse: was passiert im compiler? kann ich das so verstehen, dass explizit gesagt wird, dass dies eine klasse ist und der compiler sich gedulden soll, bis die deklaration kommt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505149</guid><dc:creator><![CDATA[zottl]]></dc:creator><pubDate>Wed, 07 May 2008 20:08:13 GMT</pubDate></item><item><title><![CDATA[Reply to Oberklasse enthält Objekt der Unterklasse on Wed, 07 May 2008 20:15:41 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Ist Vererbung denn hier überhaupt das Mittel der Wahl?<br />
Vielleicht wäre eine Aggregation hier besser.</p>
</blockquote>
<p>so wie ich bis jetzt angefangen hab, muss es schon vererbung sein. allerdings, wenn ich mir gerade so gedanken mache, müsste es auch mit aggretation gehen. aber auf jeden fall komme ich jetzt weiter. danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505161</guid><dc:creator><![CDATA[zottl]]></dc:creator><pubDate>Wed, 07 May 2008 20:15:41 GMT</pubDate></item><item><title><![CDATA[Reply to Oberklasse enthält Objekt der Unterklasse on Thu, 08 May 2008 08:40:20 GMT]]></title><description><![CDATA[<p>zottl schrieb:</p>
<blockquote>
<p>danke. vorletzteres hat geklappt.</p>
<p>was eine aggregation ist, muss ich wohl nochmal nachschauen ;)...</p>
</blockquote>
<p>Vereinfacht gesprochen:<br />
- &quot;B erbt von A&quot; = &quot;B IST ein A&quot;<br />
- &quot;B wird aggregiert von A&quot; = &quot;A HAT ein B&quot;<br />
Spannend wird das ganze bei verzweigten Strukturen (wo jede Ast selbst wieder Basis für andere Zweige sein kann) ... aber in diesem Fall scheint es mir auch eher so zu sein, dass &quot;FolderData einen Header HAT&quot;.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505341</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 08 May 2008 08:40:20 GMT</pubDate></item></channel></rss>