<?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[&amp;gt;&amp;gt;-operator überladen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe folgende Klasse:</p>
<pre><code class="language-cpp">class Kapsel {
public:

    inline operator MeinTyp() {
        return m_type;
    }

private:
    MeinTyp m_type;
};
</code></pre>
<p>und eine andere Klasse, wo ich gerne den &quot;&gt;&gt;&quot;-operator anbieten wuerde, um Werte in &quot;Kapsel&quot; zu schreiben:</p>
<pre><code class="language-cpp">class Streamer {
public:

    virtual Streamer&amp; operator &gt;&gt;(MeinTyp&amp; type) {
        m_quelle &gt;&gt; type; // m_quelle liefert ein MeinTyp
        return (*this);
    }
};
</code></pre>
<p>Mein gcc meldet mir &quot;no known conversion for argument 1 from 'Kapsel' to 'MeinTyp'.</p>
<p>Wo liegt der Fehler? Geht das überhaupt, was ich vorhabe?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/303456/gt-gt-operator-überladen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 11:57:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303456.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 14 May 2012 11:17:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;gt;&amp;gt;-operator überladen on Mon, 14 May 2012 11:17:29 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe folgende Klasse:</p>
<pre><code class="language-cpp">class Kapsel {
public:

    inline operator MeinTyp() {
        return m_type;
    }

private:
    MeinTyp m_type;
};
</code></pre>
<p>und eine andere Klasse, wo ich gerne den &quot;&gt;&gt;&quot;-operator anbieten wuerde, um Werte in &quot;Kapsel&quot; zu schreiben:</p>
<pre><code class="language-cpp">class Streamer {
public:

    virtual Streamer&amp; operator &gt;&gt;(MeinTyp&amp; type) {
        m_quelle &gt;&gt; type; // m_quelle liefert ein MeinTyp
        return (*this);
    }
};
</code></pre>
<p>Mein gcc meldet mir &quot;no known conversion for argument 1 from 'Kapsel' to 'MeinTyp'.</p>
<p>Wo liegt der Fehler? Geht das überhaupt, was ich vorhabe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211348</guid><dc:creator><![CDATA[ScopeOperator]]></dc:creator><pubDate>Mon, 14 May 2012 11:17:29 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;gt;&amp;gt;-operator überladen on Mon, 14 May 2012 11:24:17 GMT]]></title><description><![CDATA[<p>Na, sicher dass du MyType übergeben und dann in ein Temporary einlesen willst? Ne Referenz wär da irgendwo sinnvoller. <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="🙂"
    /><br />
<a href="http://ideone.com/1oeWG" rel="nofollow">http://ideone.com/1oeWG</a></p>
<p>PS: Noch sinnvoller wäre natürlich eine freie (friend) Funktion, statt einem solchen undurchsichtigen Gewurschtel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211351</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 14 May 2012 11:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;gt;&amp;gt;-operator überladen on Mon, 14 May 2012 11:25:03 GMT]]></title><description><![CDATA[<p>ScopeOperator schrieb:</p>
<blockquote>
<p>wo ich gerne den &quot;&gt;&gt;&quot;-operator anbieten wuerde, um Werte in &quot;Kapsel&quot; zu schreiben</p>
</blockquote>
<p>Du bietest nur eine Operator&gt;&gt; an, um in &quot;MeinTyp&quot; zu schreiben, nicht in Kapsel.</p>
<blockquote>
<p>Mein gcc meldet mir &quot;no known conversion for argument 1 from 'Kapsel' to 'MeinTyp'.</p>
</blockquote>
<p>Deie Kapsel kann nur in ein temporäres MeinTyp-Objekt umgewandelt werden, aber die nicht-konstante Referenz deines Operator&gt;&gt; kann nicht an ein temporäres Objekt gebunden werden, daher fällt die Konvertierung flach (ich vermute dass das die Absicht gewesen wäre).<br />
Hätte aber eh keinen Sinn gemacht, denn die Kapsel erst in ein MeinTyp umzuwandeln und dann in den MeinTyp was reinzuschreiben hätte an der Kapsel nichts geändert.</p>
<p>Lösung: Mach das was du geschrieben hast: operator&gt;&gt; für Kapsel, nicht für MeinTyp. (Und lass die implizite Konvertierung weg, die brauchst du in den wenigsten Fällen, macht oft nur Ärger)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2211354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2211354</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 14 May 2012 11:25:03 GMT</pubDate></item></channel></rss>