<?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[Beispiel für .* und -&amp;gt;*]]></title><description><![CDATA[<p>Kann mir jdm nen Beispiel machen, das die beiden Operatoren verwendet?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/131227/beispiel-für-und-gt</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 01:57:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/131227.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Jan 2006 17:52:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Sun, 01 Jan 2006 17:52:55 GMT]]></title><description><![CDATA[<p>Kann mir jdm nen Beispiel machen, das die beiden Operatoren verwendet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954208</guid><dc:creator><![CDATA[Bsp]]></dc:creator><pubDate>Sun, 01 Jan 2006 17:52:55 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Sun, 01 Jan 2006 17:58:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class cppboard
{
    public:
        int member,trolle;
        cppboard() : member(5000) , trolle( 4990 )
            {}
};

int main()
{
    cppboard rudp,
             nadrw,
             *pointer = &amp;nadrw;
    std::cout &lt;&lt; rudp.trolle &lt;&lt; &quot; &quot; &lt;&lt; nadrw.trolle &lt;&lt; &quot; &quot; &lt;&lt; pointer -&gt; trolle;
    pointer = &amp;rudp;
    std::cout &lt;&lt; &quot; &quot; &lt;&lt; pointer -&gt; trolle ;
}
</code></pre>
<p>willstenoch erläuterungen dazu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954214</guid><dc:creator><![CDATA[b.s.p.]]></dc:creator><pubDate>Sun, 01 Jan 2006 17:58:21 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Sun, 01 Jan 2006 18:06:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">struct Foo { 
    void machwas() { std::cout &lt;&lt; &quot;machwas&quot;; }
    void was_anderes() { std::cout &lt;&lt; &quot;was_anderes&quot;; }
};
typedef void (Foo::*pMethode_von_Foo)();
void work( Foo&amp; foo, pMethode_von_Foo methode )
{
    (foo.*methode)(); // &lt;-- hier
}

int main()
{
    pMethode_von_Foo m1 = &amp;Foo::machwas; // oder &amp;Foo::was_anderes
    Foo foo;
    work( foo, m1 );
    return 0;
}
</code></pre>
<p>Falls Du in work das Objekt 'foo' per Pointer übergibst, so benötigst Du den -&gt;*-operator.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954219</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 01 Jan 2006 18:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Sun, 01 Jan 2006 22:00:12 GMT]]></title><description><![CDATA[<p>b.s.p. schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class cppboard
{
    public:
        int member,trolle;
        cppboard() : member(5000) , trolle( 4990 )
            {}
};

int main()
{
    cppboard rudp,
             nadrw,
             *pointer = &amp;nadrw;
    std::cout &lt;&lt; rudp.trolle &lt;&lt; &quot; &quot; &lt;&lt; nadrw.trolle &lt;&lt; &quot; &quot; &lt;&lt; pointer -&gt; trolle;
    pointer = &amp;rudp;
    std::cout &lt;&lt; &quot; &quot; &lt;&lt; pointer -&gt; trolle ;
}
</code></pre>
<p>willstenoch erläuterungen dazu?</p>
</blockquote>
<p>wenn man keine ahnung hat, einfach mal die fresse halten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954339</guid><dc:creator><![CDATA[nuhr ein tipp]]></dc:creator><pubDate>Sun, 01 Jan 2006 22:00:12 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Sun, 01 Jan 2006 23:46:59 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<pre><code class="language-cpp">struct Foo { 
    void machwas() { std::cout &lt;&lt; &quot;machwas&quot;; }
    void was_anderes() { std::cout &lt;&lt; &quot;was_anderes&quot;; }
};
typedef void (Foo::*pMethode_von_Foo)();
void work( Foo&amp; foo, pMethode_von_Foo methode )
{
    (foo.*methode)(); // &lt;-- hier
}

int main()
{
    pMethode_von_Foo m1 = &amp;Foo::machwas; // oder &amp;Foo::was_anderes
    Foo foo;
    work( foo, m1 );
    return 0;
}
</code></pre>
<p>Falls Du in work das Objekt 'foo' per Pointer übergibst, so benötigst Du den -&gt;*-operator.</p>
<p>Gruß<br />
Werner</p>
</blockquote>
<p>Danke.</p>
<p>Habe gehört man könnte diese beiden operatoren auch überladen, wie würde das dan aussehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954392</guid><dc:creator><![CDATA[Bsp]]></dc:creator><pubDate>Sun, 01 Jan 2006 23:46:59 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Mon, 02 Jan 2006 00:48:16 GMT]]></title><description><![CDATA[<p>nur -&gt;* kann überladen werden, ich habe allerdings das allerdings noch nie gesehen. der standard enthält keine passage, die auf besonderheiten beim überladen hinweist, es ist also ein ganz normaler binärer operator, der auch als freie funktion implementiert werden kann (es ist also etwas völlig anderes als operator-&gt;). Eine überladung, die dem ursprünglichen sinn dieses operators nahekommt, ist schwer vorstellbar - und anderen zwecken dürfte die hohe priorität des operators entgegenstehen (sonst könnte man sich z.b. vorstellen, den iostream operator &gt;&gt; durch diesen operator zu ersetzen). die signatur des eingebauten operators ist in 13.6/11 zu finden:</p>
<blockquote>
<p>For every quintuple (C1, C2, T, CV1, CV2), where C2 is a class type, C1 is the same type as C2 or is a derived class of C2, T is an object type or a function type, and CV1 and CV2 are cv-qualifier-seqs, there exist candidate operator functions of the form<br />
CV12 T&amp; operator-&gt;<em>(CV1 C1</em>, CV2 T C2::*);<br />
where CV12 is the union of CV1 and CV2.</p>
</blockquote>
<p>wenn du lust hast, kannst du daraus ja einen potenz operator machen (der hätten dann die richtige priorität). leider aber nur, wenn wenigstens ein argument ein UDT ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954398</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 02 Jan 2006 00:48:16 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Mon, 02 Jan 2006 10:43:59 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>wenn du lust hast, kannst du daraus ja einen potenz operator machen (der hätten dann die richtige priorität). leider aber nur, wenn wenigstens ein argument ein UDT ist.</p>
</blockquote>
<p>Würde ich nicht machen, das sieht dem Code keiner an das da potenziert wird. Da liest sich ein pow viel schönerm egal ob man dadurch paar Zeichen mehr schreiben muss.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954563</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Mon, 02 Jan 2006 10:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Mon, 02 Jan 2006 11:25:17 GMT]]></title><description><![CDATA[<p><strong>CV2 T C2::</strong>*<br />
Das ist doch nen Member-Function-Ptr oder?</p>
<p>Also kann man op-&gt;* nicht sinnvoll überladen, wie zB op++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/954592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954592</guid><dc:creator><![CDATA[Bsp]]></dc:creator><pubDate>Mon, 02 Jan 2006 11:25:17 GMT</pubDate></item><item><title><![CDATA[Reply to Beispiel für .* und -&amp;gt;* on Mon, 02 Jan 2006 12:41:11 GMT]]></title><description><![CDATA[<p>FireFlow schrieb:</p>
<blockquote>
<p>camper schrieb:</p>
<blockquote>
<p>wenn du lust hast, kannst du daraus ja einen potenz operator machen (der hätten dann die richtige priorität). leider aber nur, wenn wenigstens ein argument ein UDT ist.</p>
</blockquote>
<p>Würde ich nicht machen, das sieht dem Code keiner an das da potenziert wird. Da liest sich ein pow viel schönerm egal ob man dadurch paar Zeichen mehr schreiben muss.</p>
<p>Gruß</p>
</blockquote>
<p>ich meinte auch nicht, dass man es tun sollte, es war nur eine möglichkeit. letzlich ist es sowieso nur eine frage der konvention - ich könnte auch behaupten, dass es ganz und gar nicht offensichtlich ist, was &lt;&lt; und &gt;&gt; mit streams anstellen - oder z.B. % mit boost:format objekten.</p>
<p>Bsp schrieb:</p>
<blockquote>
<p><strong>CV2 T C2::</strong>*<br />
Das ist doch nen Member-Function-Ptr oder?</p>
<p>Also kann man op-&gt;* nicht sinnvoll überladen, wie zB op++</p>
</blockquote>
<p>obige deklaration ist die signatur des eingebauten operators. jede überladung muss folglich davon abweichen. nehmen wir das potenzbeispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cmath&gt;
using namespace std;
struct Double
{
    Double(double v) : v(v) {}
    operator double() const { return v; }
    double v;
};
double operator-&gt;*(const Double&amp; base, const Double&amp; exponent)
{
    return pow( base, exponent );
}

int main()
{
    cout &lt;&lt; 2.0-&gt;*Double(3.0);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/954653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954653</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 02 Jan 2006 12:41:11 GMT</pubDate></item></channel></rss>