<?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[Mehrdeutigkeit bei Mehrfachvererbung]]></title><description><![CDATA[<p>Hi,</p>
<pre><code class="language-cpp">class A {
    private:
            void func() {};
};

class B {
    public:
            void func() {};
};

class AB :
        public A,
        public B
{};

int main()
{
   AB obj;
   obj.func();
}
</code></pre>
<p>Wieso ist der Aufruf hier Mehrdeutig. Es gibt doch nur eine öffentlich Funktion func() die aufgerufen werden kann. Die private func() sollte doch in main gar nicht sichtbar sein ???</p>
<p>Wie geht C++ hier bei der Auflösung vor ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157881/mehrdeutigkeit-bei-mehrfachvererbung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 03:03:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157881.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Aug 2006 11:54:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 11:54:31 GMT]]></title><description><![CDATA[<p>Hi,</p>
<pre><code class="language-cpp">class A {
    private:
            void func() {};
};

class B {
    public:
            void func() {};
};

class AB :
        public A,
        public B
{};

int main()
{
   AB obj;
   obj.func();
}
</code></pre>
<p>Wieso ist der Aufruf hier Mehrdeutig. Es gibt doch nur eine öffentlich Funktion func() die aufgerufen werden kann. Die private func() sollte doch in main gar nicht sichtbar sein ???</p>
<p>Wie geht C++ hier bei der Auflösung vor ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127501</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:54:31 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 11:57:21 GMT]]></title><description><![CDATA[<p>Freak_Coder schrieb:</p>
<blockquote>
<p>Wieso ist der Aufruf hier Mehrdeutig. Es gibt doch nur eine öffentlich Funktion func() die aufgerufen werden kann. Die private func() sollte doch in main gar nicht sichtbar sein ???</p>
</blockquote>
<p>Doch. private heißt nicht unsichtbar, sondern dass du nicht zugreifen darfst.</p>
<p>Freak_Coder schrieb:</p>
<blockquote>
<p>Wie geht C++ hier bei der Auflösung vor ?</p>
</blockquote>
<pre><code class="language-cpp">class AB : public A, public B
{
public:
    using B::func;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1127503</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127503</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:57:21 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 11:57:26 GMT]]></title><description><![CDATA[<p>wenn die basisklassenprogrammierer sich aber entscheiden, an den zugriffsfreiheiiten was zu ändern, darf das auf gar keinen fall die semantik derart verändern, daß schon wieder ne raumfähre abstürzt wegen eines programmierfehlers.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127504</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Wed, 30 Aug 2006 11:57:26 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 12:10:19 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p>private heißt nicht unsichtbar, sondern dass du nicht zugreifen darfst.</p>
</blockquote>
<p>Hmm stimmt ja. Das Wort &quot;sichtbar&quot; war blöd gewählt. Aber für den Compiler sollte doch klar sein das ich die Funktion nicht aufrufen darf. Deshalb bleibt doch nur public-func() übrig.</p>
<p>Also wieso meckert er dann, find ich schon bissl komisch ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127523</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 30 Aug 2006 12:10:19 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 13:00:50 GMT]]></title><description><![CDATA[<p>Schau dir den Post von volkard an.</p>
<p>Nehmen wir folgende Hierarchie:</p>
<pre><code class="language-cpp">class Lichtanlagensteuerung
{
public:
    void schalte_ab ();
}

class Antriebssteuerung
{
private:
    void schalte_ab ();
};

class Raumfaehrenelektronik : public Lichtanlagensteuerung, public Antriebssteuerung
{
public:
    mache_licht_aus ()
    {
        schalte_ab ();
    }
};
</code></pre>
<p>Was meinst du was das einen Spaß gäbe, wenn das so funktionieren würde, wie du es sagst. Es braucht nur einer zu meinen, die Elektronik bräuchte direkten Zugriff auf den Antrieb, aber, um einen coolen Dimmer einzubauen, keinen direkten Zugriff mehr auf die Funktion, das Licht ganz abzuschalten, schon geht das Licht nicht mehr aus :D.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127581</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Wed, 30 Aug 2006 13:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 13:01:35 GMT]]></title><description><![CDATA[<p>Freak_Coder schrieb:</p>
<blockquote>
<p>.filmor schrieb:</p>
<blockquote>
<p>private heißt nicht unsichtbar, sondern dass du nicht zugreifen darfst.</p>
</blockquote>
<p>Hmm stimmt ja. Das Wort &quot;sichtbar&quot; war blöd gewählt. Aber für den Compiler sollte doch klar sein das ich die Funktion nicht aufrufen darf. Deshalb bleibt doch nur public-func() übrig.</p>
<p>Also wieso meckert er dann, find ich schon bissl komisch ...</p>
</blockquote>
<p>Ganz und gar nicht !<br />
Denn die private-Funktion ist mitnichten &quot;nicht aufrufbar&quot; !<br />
Sie kann nur von außerhalb der Klasse aus nicht aufgerufen werden.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">class A {
    private:
            void func() {};
    public:
            void callfunc() {func();}
};

class B {
    public:
            void func() {};
};

class AB :
        public A,
        public B
{};
int main(void) {
    AB a;
    a.callfunc();
...
</code></pre>
<p>Welche Funktion soll jetzt aufgerufen werden ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127583</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 30 Aug 2006 13:01:35 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 13:03:47 GMT]]></title><description><![CDATA[<p>.filmor schrieb:</p>
<blockquote>
<p>...</p>
<p>Nehmen wir folgende Hierarchie:<br />
...</p>
</blockquote>
<p>Dein Beispiel ist ein wenig unglücklich gewählt, weil die private Methode der Basisklasse sowieso nicht von der abgeleiteten Klasse aus aufgerufen werden darf.<br />
<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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127587</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 30 Aug 2006 13:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrdeutigkeit bei Mehrfachvererbung on Wed, 30 Aug 2006 15:22:54 GMT]]></title><description><![CDATA[<p>OK, jetzt ist alles klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127724</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 30 Aug 2006 15:22:54 GMT</pubDate></item></channel></rss>