<?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[[gelöst] getrennte Klassendefinition, Konstruktor mit Objekt als Argument oder so ähnlich]]></title><description><![CDATA[<p>Hallo, tolles Forum, da ich schon zu lange an meinem problem tüfftle, bitte ich um Hinweise. Prinzipiell gehts drum, ein Objekt an den Konstruktor einer Klasse zu übergeben, der eine getrennte Klassendefinition aufweist.<br />
Es gibt 3 Klassen, A,B,C; Klasse A soll von B nach C übergeben werden.</p>
<p>So siehts ca. aus:</p>
<pre><code>[cpp]
//classA soll was sein, dass von B nach C durchgereicht wird
class classA
{
    // nix besonderes
}

//classB besitzt ein Objekt der Klasse A und C. Klasse A übergeb ich einfach
//im main. soweit kein problem.
class classB
{
    public:
        classB(classA &amp;cA);
    private:
        classA _cA;
        classC _cC;  // &lt;---- problem, wie weiß C dass es A aufnehmen soll???
                     //   classC _cC(cA) geht nicht, da kommt beim maken ein     
                     //   Fehler ala: error: invalid use of member (did you forget the ‘&amp;’ ?)
};

classB::classB(classA &amp;cA):_cA(cA)
{
    // hier brauch ich A und C
}

//Klasse C hat einen Konstruktor, der Klasse A verlangt. jetzt wirds schräg.
class classC
{
    public:
        classC(classA &amp;cA);
}

classC::classC(classA &amp;cA)
{
    // hier würd ich gern mit C arbeiten können
}
[/cpp]
</code></pre>
<p>Dann gibts halt noch wo eine main Funktion die ein Objekt der Klasse A und B erzeugt und A an B weitergibt.<br />
Aber wo und wie muss ich jetzt Klasse B sagen, dass es Klasse A an Klasse C &quot;weiterleiten&quot; soll?<br />
Das ganze wär kein Problem, wenn ich keine getrennte Klassendefinition hätt, würd ich mal sagen. Mag ich aber nicht. Eine Lösung mit Zeigern wär auch vorstellbar. Aber ich will wissen, ob es da eine bessere Methode gibt. Hoff' ich hab mich einigermaßen klar ausgedrückt.</p>
<p>Wer kann mir helfen?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279731/gelöst-getrennte-klassendefinition-konstruktor-mit-objekt-als-argument-oder-so-ähnlich</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 11:09:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279731.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 Jan 2011 21:49:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] getrennte Klassendefinition, Konstruktor mit Objekt als Argument oder so ähnlich on Sun, 02 Jan 2011 22:18:21 GMT]]></title><description><![CDATA[<p>Hallo, tolles Forum, da ich schon zu lange an meinem problem tüfftle, bitte ich um Hinweise. Prinzipiell gehts drum, ein Objekt an den Konstruktor einer Klasse zu übergeben, der eine getrennte Klassendefinition aufweist.<br />
Es gibt 3 Klassen, A,B,C; Klasse A soll von B nach C übergeben werden.</p>
<p>So siehts ca. aus:</p>
<pre><code>[cpp]
//classA soll was sein, dass von B nach C durchgereicht wird
class classA
{
    // nix besonderes
}

//classB besitzt ein Objekt der Klasse A und C. Klasse A übergeb ich einfach
//im main. soweit kein problem.
class classB
{
    public:
        classB(classA &amp;cA);
    private:
        classA _cA;
        classC _cC;  // &lt;---- problem, wie weiß C dass es A aufnehmen soll???
                     //   classC _cC(cA) geht nicht, da kommt beim maken ein     
                     //   Fehler ala: error: invalid use of member (did you forget the ‘&amp;’ ?)
};

classB::classB(classA &amp;cA):_cA(cA)
{
    // hier brauch ich A und C
}

//Klasse C hat einen Konstruktor, der Klasse A verlangt. jetzt wirds schräg.
class classC
{
    public:
        classC(classA &amp;cA);
}

classC::classC(classA &amp;cA)
{
    // hier würd ich gern mit C arbeiten können
}
[/cpp]
</code></pre>
<p>Dann gibts halt noch wo eine main Funktion die ein Objekt der Klasse A und B erzeugt und A an B weitergibt.<br />
Aber wo und wie muss ich jetzt Klasse B sagen, dass es Klasse A an Klasse C &quot;weiterleiten&quot; soll?<br />
Das ganze wär kein Problem, wenn ich keine getrennte Klassendefinition hätt, würd ich mal sagen. Mag ich aber nicht. Eine Lösung mit Zeigern wär auch vorstellbar. Aber ich will wissen, ob es da eine bessere Methode gibt. Hoff' ich hab mich einigermaßen klar ausgedrückt.</p>
<p>Wer kann mir helfen?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001470</guid><dc:creator><![CDATA[johanness]]></dc:creator><pubDate>Sun, 02 Jan 2011 22:18:21 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] getrennte Klassendefinition, Konstruktor mit Objekt als Argument oder so ähnlich on Sun, 02 Jan 2011 22:07:21 GMT]]></title><description><![CDATA[<p>Vielleicht hab ich das Problem nicht ganz verstanden, aber was spricht gegen:</p>
<pre><code class="language-cpp">classB::classB(classA &amp;cA):_cA(cA),_cC(cA)
{
    // hier brauch ich A und C
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2001473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001473</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Sun, 02 Jan 2011 22:07:21 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] getrennte Klassendefinition, Konstruktor mit Objekt als Argument oder so ähnlich on Sun, 02 Jan 2011 22:17:18 GMT]]></title><description><![CDATA[<p>du hast recht, vielen dank. hatte das zwar schon ausprobiert - aber mit einer methode von A die einfach nur leer war <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
nochmals vielen dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001475</guid><dc:creator><![CDATA[johanness]]></dc:creator><pubDate>Sun, 02 Jan 2011 22:17:18 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] getrennte Klassendefinition, Konstruktor mit Objekt als Argument oder so ähnlich on Sun, 02 Jan 2011 22:43:01 GMT]]></title><description><![CDATA[<p>Abgesehen von einigen Fehlern (fehldende Semikolon nach Klassendefinition, classC für classB unbekannt) hättest du folgendes Problem:</p>
<p>Ohne den Aufruf des parametrisierten classC-Konstruktors in der<br />
Initialisierungsliste des classB-Konstruktors könntest du ohnehin keine Instanz von classB anlegen, da in dem Fall versucht würde, den standard-Konstruktor von classC aufzurufuen.<br />
Der ist aber nicht vorhanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2001478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2001478</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Sun, 02 Jan 2011 22:43:01 GMT</pubDate></item></channel></rss>