<?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[Übergabe eigener Instanz an instantiierte Klasse]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich habe mal, da ich neu von Java komme (habe allerdings schon etwas mit C++ gearbeitet) etwas mit den C++-Klassen herumexperimentiert. Nun habe ich aber bereits ein Problem:<br />
Ich habe da also 2 Klassen, die - abgesehen vom Namen - identisch sind und auch jeweils den Header der anderen Klasse inkludiert haben.<br />
Nun habe ich beiden Klassen noch eine Funktion hinzugefügt, mit der eine Instanz der jeweils anderen Klasse übergeben werden kann (ein Zeiger darauf).<br />
Bei der einen der beiden Klassen wird das ohne zu meckern kompiliert, bei der anderen kommt eine Meldung dass der Datentyp (die eine Klasse) nicht definiert sei. Wieso das? Und insbesondere geschieht dies zufällig - ich habe lediglich diese beiden Klassen und eine leere main.cpp. Ausserdem ist bei beiden Klassen nur eine leer-Implementierung vorhanden.<br />
Wie kann ich es denn sonst lösen, dass eine Klasse eine andere Klasse instantiiert und dieser eine Instanz von sich selbst übergeben kann? Evtl. virtuelle Klassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277253/übergabe-eigener-instanz-an-instantiierte-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 01:43:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277253.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Nov 2010 15:47:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übergabe eigener Instanz an instantiierte Klasse on Mon, 15 Nov 2010 15:47:44 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich habe mal, da ich neu von Java komme (habe allerdings schon etwas mit C++ gearbeitet) etwas mit den C++-Klassen herumexperimentiert. Nun habe ich aber bereits ein Problem:<br />
Ich habe da also 2 Klassen, die - abgesehen vom Namen - identisch sind und auch jeweils den Header der anderen Klasse inkludiert haben.<br />
Nun habe ich beiden Klassen noch eine Funktion hinzugefügt, mit der eine Instanz der jeweils anderen Klasse übergeben werden kann (ein Zeiger darauf).<br />
Bei der einen der beiden Klassen wird das ohne zu meckern kompiliert, bei der anderen kommt eine Meldung dass der Datentyp (die eine Klasse) nicht definiert sei. Wieso das? Und insbesondere geschieht dies zufällig - ich habe lediglich diese beiden Klassen und eine leere main.cpp. Ausserdem ist bei beiden Klassen nur eine leer-Implementierung vorhanden.<br />
Wie kann ich es denn sonst lösen, dass eine Klasse eine andere Klasse instantiiert und dieser eine Instanz von sich selbst übergeben kann? Evtl. virtuelle Klassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980817</guid><dc:creator><![CDATA[zilti]]></dc:creator><pubDate>Mon, 15 Nov 2010 15:47:44 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe eigener Instanz an instantiierte Klasse on Mon, 15 Nov 2010 16:04:54 GMT]]></title><description><![CDATA[<p>Häufig gemachter Fehler. Lies mal das <a href="http://www.drakon.ch/?id=&amp;offset=5&amp;mobile=0&amp;show_entry=77" rel="nofollow">hier</a>.</p>
<p>Im übrigen würde ich dir empfehlen ein Buch über C++ zu kaufen oder ein gutes Online Buch zu lesen. Vor allem als Umsteiger verhält es sich in C++ nicht immer ganz so, wie man es vermutet, oder man es gewohnt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980824</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 15 Nov 2010 16:04:54 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe eigener Instanz an instantiierte Klasse on Mon, 15 Nov 2010 16:06:21 GMT]]></title><description><![CDATA[<p>Dein Problem ist wahrscheinlich die zirkuläre Einbindung der Header Dateien, d.h. KlasseA.h inkludiert KlasseB.h und KlasseB.h inkludiert KlasseA.h. Das lässt sich durch sogenanntes forward declaration lösen:</p>
<p>KlasseA.h</p>
<pre><code class="language-cpp">// forward declaration
class KlasseB;

class KlasseA
{
   ...
   KlasseB* KlasseB_;
   ...
};
</code></pre>
<p>und</p>
<p>KlasseB.h</p>
<pre><code class="language-cpp">// forward declaration
class KlasseA;

class KlasseB
{
   ...
   KlasseA* KlasseA_;
   ...
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1980825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980825</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 15 Nov 2010 16:06:21 GMT</pubDate></item><item><title><![CDATA[Reply to Übergabe eigener Instanz an instantiierte Klasse on Mon, 15 Nov 2010 16:11:42 GMT]]></title><description><![CDATA[<p>Danke! Das habe ich gesucht.<br />
Ich habe schon C++-Bücher, aber die habe ich gerade nicht zur Hand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1980827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1980827</guid><dc:creator><![CDATA[zilti]]></dc:creator><pubDate>Mon, 15 Nov 2010 16:11:42 GMT</pubDate></item></channel></rss>