<?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[Anfängerfrage zu Vererbung]]></title><description><![CDATA[<p>Hallo, ich habe ein Problem bei zwei Klassen, die jeweils von einander erben sollen.</p>
<pre><code class="language-cpp">class A
{
   private:
    int a;

   public:
    friend class B;
    void funktion1(B&amp; objekt);
};

class B : A
{
   private:
    int b;

   public:
    void funktion2(A&amp; Objekt)
    {
        Objekt.a=1;
    }
};
</code></pre>
<p>Wie hier zu sehen ist, gibt es in Klasse A eine Funktion, die ein Objekt der Klasse B als Parameter hat und eine Klasse B, die ein Objekt der Klasse A als Paramter hat. Das Beispiel von oben kompiliert auch wunderbar.<br />
Wenn ich jetzt über Funktion1 auf B zugreifen will,</p>
<pre><code class="language-cpp">void funktion1(B&amp; objekt)
{
    objekt.b=1;
}
</code></pre>
<p>dann bekomme ich eine Fehlermeldung (Invalid Use of undefinded type B, Forward declaration of B).<br />
Wie kann ich die Klassen so voneinander erben lassen, dass ich ein Objekt einer Klasse als Parameter in Funktionen der jeweils anderen Klasse benutzen kann, und noch Zugriffsrechte auf das Objekt habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/236632/anfängerfrage-zu-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 16:42:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/236632.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Mar 2009 20:28:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Tue, 17 Mar 2009 20:28:50 GMT]]></title><description><![CDATA[<p>Hallo, ich habe ein Problem bei zwei Klassen, die jeweils von einander erben sollen.</p>
<pre><code class="language-cpp">class A
{
   private:
    int a;

   public:
    friend class B;
    void funktion1(B&amp; objekt);
};

class B : A
{
   private:
    int b;

   public:
    void funktion2(A&amp; Objekt)
    {
        Objekt.a=1;
    }
};
</code></pre>
<p>Wie hier zu sehen ist, gibt es in Klasse A eine Funktion, die ein Objekt der Klasse B als Parameter hat und eine Klasse B, die ein Objekt der Klasse A als Paramter hat. Das Beispiel von oben kompiliert auch wunderbar.<br />
Wenn ich jetzt über Funktion1 auf B zugreifen will,</p>
<pre><code class="language-cpp">void funktion1(B&amp; objekt)
{
    objekt.b=1;
}
</code></pre>
<p>dann bekomme ich eine Fehlermeldung (Invalid Use of undefinded type B, Forward declaration of B).<br />
Wie kann ich die Klassen so voneinander erben lassen, dass ich ein Objekt einer Klasse als Parameter in Funktionen der jeweils anderen Klasse benutzen kann, und noch Zugriffsrechte auf das Objekt habe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1681813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681813</guid><dc:creator><![CDATA[pftym]]></dc:creator><pubDate>Tue, 17 Mar 2009 20:28:50 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Tue, 17 Mar 2009 21:13:50 GMT]]></title><description><![CDATA[<p>zur deklarationszeit von Klasse A ist Klasse B noch nicht bekannt.</p>
<p>setz mal ganz an den Anfang ein:</p>
<pre><code class="language-cpp">class B;  // Macht Klasse 'B' bekannt

class A {
// ...
};

// ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1681834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1681834</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 17 Mar 2009 21:13:50 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Fri, 20 Mar 2009 22:30:55 GMT]]></title><description><![CDATA[<p>Wenn ich das so ändere:</p>
<pre><code class="language-cpp">class A;

class B : A
{
    private: int b;
    public: void func(const A&amp; obj);
};

class A : B
{
    public: int a;
    public: void func2(const B&amp; obj);
};

void B::func(const A&amp; obj)
{
    b=obj.a;
}

void A::func2(const B&amp; obj)
{
    a=obj.b;
}
</code></pre>
<p>Bekomme ich als Fehlermeldung:<br />
<strong>Invalid use of undefinded type 'struct A'</strong> zu Zeile 4 und <strong>forward declaration of 'struct A'</strong> zu Zeile 1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1683665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1683665</guid><dc:creator><![CDATA[ptfym]]></dc:creator><pubDate>Fri, 20 Mar 2009 22:30:55 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Fri, 20 Mar 2009 22:38:21 GMT]]></title><description><![CDATA[<p>Wie willst du <code>A</code> von <code>B</code> erben und gleichzeitig <code>B</code> von <code>A</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1683666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1683666</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 20 Mar 2009 22:38:21 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Fri, 20 Mar 2009 22:48:46 GMT]]></title><description><![CDATA[<p>Also ist es unmöglich in Klasse A eine Funktion zu implemetieren, die ein Objekt von Klasse B als Parameter nutzt und gleichzeitig eine Funktion in Klasse B zu implementieren, die als Parameter ein Objekt von Klasse A nutzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1683669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1683669</guid><dc:creator><![CDATA[ptfym]]></dc:creator><pubDate>Fri, 20 Mar 2009 22:48:46 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Fri, 20 Mar 2009 22:58:45 GMT]]></title><description><![CDATA[<p>Nein, das Problem ist die Vererbung. A erbt von B, B von A, A von B, B von A... Du hast ein dickes Design-Problem. Aber das sagte Nexus ja bereits.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1683670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1683670</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Fri, 20 Mar 2009 22:58:45 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Fri, 20 Mar 2009 23:03:02 GMT]]></title><description><![CDATA[<p>Was wäre denn der richtige Ansatz, damit meine Implementation klappt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1683673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1683673</guid><dc:creator><![CDATA[ptfym]]></dc:creator><pubDate>Fri, 20 Mar 2009 23:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Fri, 20 Mar 2009 23:09:11 GMT]]></title><description><![CDATA[<p>Also bei mir läßt sich folgendes kompilieren:</p>
<pre><code class="language-cpp">class A
{
   private:
    int a;

   public:
    friend class B;
    void funktion1(B&amp; objekt);
};

class B : A
{
   private:
    friend class A;
    int b;

   public:
    void funktion2(A&amp; Objekt)
    {
        Objekt.a=1;
    }
};

void A::funktion1(B&amp; objekt)
{
	objekt.b = 1;
}
</code></pre>
<p>Da B.b private ist, muß Klasse A allerdings noch friend von B sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1683675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1683675</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Fri, 20 Mar 2009 23:09:11 GMT</pubDate></item><item><title><![CDATA[Reply to Anfängerfrage zu Vererbung on Fri, 20 Mar 2009 23:28:53 GMT]]></title><description><![CDATA[<p>Das hat funktioniert, Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1683677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1683677</guid><dc:creator><![CDATA[ptfym]]></dc:creator><pubDate>Fri, 20 Mar 2009 23:28:53 GMT</pubDate></item></channel></rss>