<?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[Globalen Operator für die Basisklasse aufrufen]]></title><description><![CDATA[<p>Ich komme mir irgendwie blöd vor mit dieser grundlegenden Frage, aber ich finde einfach die Lösung nicht. Weder in meinen Büchern, noch in meinem Kopf, daher frage ich mal euch.</p>
<pre><code class="language-cpp">class A
{
public:
    friend std::istream&amp; operator &gt;&gt;(std::istream&amp;, A&amp;);
};

std::istream&amp; operator &gt;&gt;(std::istream&amp; i, A&amp; a)
{
    // ...
    return i;
}

class B : public A
{
public:
    friend std::istream&amp; operator &gt;&gt;(std::istream&amp;, B&amp;);
};

std::istream&amp; operator &gt;&gt;(std::istream&amp; i, B&amp; b)
{
    // ...
    // Wie &quot;std::istream&amp; operator &gt;&gt;(std::istream&amp;, A&amp;)&quot; aufrufen?
    return i;
}
</code></pre>
<p>Der Code sagt es eigentlich schon. Wie kann ich den anderen globalen Operator aufrufen, bzw. halt den für die Basisklasse? Geht das nur so:</p>
<pre><code class="language-cpp">std::istream&amp; operator &gt;&gt;(std::istream&amp; i, B&amp; b)
{
    // ...
    A&amp; a = b;
    return i &gt;&gt; a;
}
</code></pre>
<p>Kann doch nicht sein ...</p>
<p>Danke für die Hilfe.<br />
Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207594/globalen-operator-für-die-basisklasse-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 07:01:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207594.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 09 Mar 2008 17:24:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Globalen Operator für die Basisklasse aufrufen on Sun, 09 Mar 2008 17:24:32 GMT]]></title><description><![CDATA[<p>Ich komme mir irgendwie blöd vor mit dieser grundlegenden Frage, aber ich finde einfach die Lösung nicht. Weder in meinen Büchern, noch in meinem Kopf, daher frage ich mal euch.</p>
<pre><code class="language-cpp">class A
{
public:
    friend std::istream&amp; operator &gt;&gt;(std::istream&amp;, A&amp;);
};

std::istream&amp; operator &gt;&gt;(std::istream&amp; i, A&amp; a)
{
    // ...
    return i;
}

class B : public A
{
public:
    friend std::istream&amp; operator &gt;&gt;(std::istream&amp;, B&amp;);
};

std::istream&amp; operator &gt;&gt;(std::istream&amp; i, B&amp; b)
{
    // ...
    // Wie &quot;std::istream&amp; operator &gt;&gt;(std::istream&amp;, A&amp;)&quot; aufrufen?
    return i;
}
</code></pre>
<p>Der Code sagt es eigentlich schon. Wie kann ich den anderen globalen Operator aufrufen, bzw. halt den für die Basisklasse? Geht das nur so:</p>
<pre><code class="language-cpp">std::istream&amp; operator &gt;&gt;(std::istream&amp; i, B&amp; b)
{
    // ...
    A&amp; a = b;
    return i &gt;&gt; a;
}
</code></pre>
<p>Kann doch nicht sein ...</p>
<p>Danke für die Hilfe.<br />
Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471063</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 09 Mar 2008 17:24:32 GMT</pubDate></item><item><title><![CDATA[Reply to Globalen Operator für die Basisklasse aufrufen on Mon, 10 Mar 2008 08:02:36 GMT]]></title><description><![CDATA[<p>Natürlich geht sowas:</p>
<pre><code class="language-cpp">i &gt;&gt; *((A*)&amp;b);
</code></pre>
<p>aber das geht sicher auch schicker.</p>
<p>Ich würde da ja eher eine extra Funktion schreiben die sich darum kümmert das die richtigen Operatoren ausgeführt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471255</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Mon, 10 Mar 2008 08:02:36 GMT</pubDate></item><item><title><![CDATA[Reply to Globalen Operator für die Basisklasse aufrufen on Mon, 10 Mar 2008 08:13:36 GMT]]></title><description><![CDATA[<p>Bitte.</p>
<pre><code class="language-cpp">i &gt;&gt; static_cast&lt; A&amp; &gt;( b );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1471263</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471263</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 10 Mar 2008 08:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to Globalen Operator für die Basisklasse aufrufen on Mon, 10 Mar 2008 10:02:00 GMT]]></title><description><![CDATA[<p>Gefällt mir irgendwie alles nicht, ich lös das wohl besser anders. Danke für die Hilfe.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1471312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1471312</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 10 Mar 2008 10:02:00 GMT</pubDate></item></channel></rss>