<?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[[solved] operator &amp;lt;&amp;lt; für abstrakte basisklasse]]></title><description><![CDATA[<p>hi!</p>
<p>ich hab folgendes problem: ich hab eine abstrakte basisklasse, für die ich den &lt;&lt; operator überladen habe. wenn ich nun davon abgeleitete klassen auf den outstream schreiben möcht, kommt folgende fehlermeldung vom vs:</p>
<blockquote>
<p>Error 2 error C2243: 'type cast' : conversion from 'Rect *__w64 ' to 'Figure &amp;' exists, but is inaccessible c:\prog\test\templatetest\main.cpp 16</p>
</blockquote>
<p>der code schaut so aus:</p>
<pre><code class="language-cpp">class Figure
{
public:

    // ...

    virtual string&amp; ToString() = 0;

    friend ostream&amp; operator &lt;&lt; ( ostream&amp; outstream, Figure&amp; f );
};

class Rect : Figure
{
public:

    // ...
    string&amp; ToString();
};

string&amp; Rect::ToString()
{
    return string( &quot;rect&quot; );
}

int main( char **argv, int args )
{
    Rect r( 5, 2 );
    cout &lt;&lt; r;
}
</code></pre>
<p>was is falsch bzw. warum geht das nicht, oder is das so garnet möglich? ich muss doch net etwa für jede klasse den operator &lt;&lt; neu überladen wenn der immer das selbe macht?</p>
<p>danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168295/solved-operator-lt-lt-für-abstrakte-basisklasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 09:05:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168295.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 20 Dec 2006 16:07:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [solved] operator &amp;lt;&amp;lt; für abstrakte basisklasse on Wed, 07 May 2008 07:47:37 GMT]]></title><description><![CDATA[<p>hi!</p>
<p>ich hab folgendes problem: ich hab eine abstrakte basisklasse, für die ich den &lt;&lt; operator überladen habe. wenn ich nun davon abgeleitete klassen auf den outstream schreiben möcht, kommt folgende fehlermeldung vom vs:</p>
<blockquote>
<p>Error 2 error C2243: 'type cast' : conversion from 'Rect *__w64 ' to 'Figure &amp;' exists, but is inaccessible c:\prog\test\templatetest\main.cpp 16</p>
</blockquote>
<p>der code schaut so aus:</p>
<pre><code class="language-cpp">class Figure
{
public:

    // ...

    virtual string&amp; ToString() = 0;

    friend ostream&amp; operator &lt;&lt; ( ostream&amp; outstream, Figure&amp; f );
};

class Rect : Figure
{
public:

    // ...
    string&amp; ToString();
};

string&amp; Rect::ToString()
{
    return string( &quot;rect&quot; );
}

int main( char **argv, int args )
{
    Rect r( 5, 2 );
    cout &lt;&lt; r;
}
</code></pre>
<p>was is falsch bzw. warum geht das nicht, oder is das so garnet möglich? ich muss doch net etwa für jede klasse den operator &lt;&lt; neu überladen wenn der immer das selbe macht?</p>
<p>danke schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195488</guid><dc:creator><![CDATA[iko79]]></dc:creator><pubDate>Wed, 07 May 2008 07:47:37 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] operator &amp;lt;&amp;lt; für abstrakte basisklasse on Wed, 20 Dec 2006 16:16:38 GMT]]></title><description><![CDATA[<p>Du musst die Vererbung öffentlich machen:</p>
<pre><code class="language-cpp">class Rect : public Figure
</code></pre>
<p>Ansonsten werden die public-Elemente aus Figure als private in Rect übernommen und werden somit von außen nicht aufrufbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195499</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to [solved] operator &amp;lt;&amp;lt; für abstrakte basisklasse on Wed, 20 Dec 2006 16:27:12 GMT]]></title><description><![CDATA[<p>achgott, grad hab ichs rausgefunden. DANKE! wenn ma vo c# wieder auf c++ zurückwechselt versteht ma manchmal die welt nimmer <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1195502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195502</guid><dc:creator><![CDATA[iko79]]></dc:creator><pubDate>Wed, 20 Dec 2006 16:27:12 GMT</pubDate></item></channel></rss>