<?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[Index Operator überladen mit AnsiString]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte bei einer Klasse den Index Operator so überladen, dass folgendes möglich is:</p>
<pre><code class="language-cpp">TMyClass *Foo = new TFoo();
...
// Foo bekommt Daten
...
AnsiString str = Foo[&quot;string&quot;];
</code></pre>
<p>Also quasi wie es bei einer std::map auch möglich ist. Wie genau muss ich den Indexoperator überladen und was brauche ich noch dafür (Zuweisungsoperator, Copy?).</p>
<p>Ich habe folgendes probiert:</p>
<pre><code class="language-cpp">AnsiString &amp; TFoo::operator[] (AnsiString str)
{
 ...
 ...
 return mystr;
}
</code></pre>
<p>Ich bekomme aber immer den Fehler das er TFoo nicht zu AnsiString konvertieren kann.</p>
<p>Viele Grüße,</p>
<p>Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201875/index-operator-überladen-mit-ansistring</link><generator>RSS for Node</generator><lastBuildDate>Wed, 19 Aug 2026 04:33:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201875.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 05 Jan 2008 10:59:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Index Operator überladen mit AnsiString on Sat, 05 Jan 2008 10:59:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte bei einer Klasse den Index Operator so überladen, dass folgendes möglich is:</p>
<pre><code class="language-cpp">TMyClass *Foo = new TFoo();
...
// Foo bekommt Daten
...
AnsiString str = Foo[&quot;string&quot;];
</code></pre>
<p>Also quasi wie es bei einer std::map auch möglich ist. Wie genau muss ich den Indexoperator überladen und was brauche ich noch dafür (Zuweisungsoperator, Copy?).</p>
<p>Ich habe folgendes probiert:</p>
<pre><code class="language-cpp">AnsiString &amp; TFoo::operator[] (AnsiString str)
{
 ...
 ...
 return mystr;
}
</code></pre>
<p>Ich bekomme aber immer den Fehler das er TFoo nicht zu AnsiString konvertieren kann.</p>
<p>Viele Grüße,</p>
<p>Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430998</guid><dc:creator><![CDATA[chbr]]></dc:creator><pubDate>Sat, 05 Jan 2008 10:59:30 GMT</pubDate></item><item><title><![CDATA[Reply to Index Operator überladen mit AnsiString on Sat, 05 Jan 2008 11:29:56 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Das einzige Problem was ich sehe ist<br />
- Deine Klasse heißt TFoo, aber der Pointer den du im Beispiel benutzt hat den Typ TMyClass. Nur ein Schreibfehler?</p>
<p>- Du kannst nicht auf den Pointer den []-Operator anwenden, du must den zuerst dereferenzieren</p>
<pre><code class="language-cpp">AnsiString str = (*Foo)[&quot;string&quot;];
</code></pre>
<p>Der Operator selber ist aber in Ordnung.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431015</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 05 Jan 2008 11:29:56 GMT</pubDate></item><item><title><![CDATA[Reply to Index Operator überladen mit AnsiString on Sat, 05 Jan 2008 16:12:59 GMT]]></title><description><![CDATA[<p>Hallo Akari,</p>
<p>vielen Dank für deine Antwort. Ans derefenzieren habe ich gar nicht mehr gedacht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> . Ich werde es dann wohl statisch anlegen, um mir die Schreibarbeit zu sparen (ich habe keine Nachteile).<br />
Beim Klassennamen habe ich mich einfach nur vertan.</p>
<p>Grüße,</p>
<p>Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431226</guid><dc:creator><![CDATA[chbr]]></dc:creator><pubDate>Sat, 05 Jan 2008 16:12:59 GMT</pubDate></item><item><title><![CDATA[Reply to Index Operator überladen mit AnsiString on Sun, 06 Jan 2008 13:25:26 GMT]]></title><description><![CDATA[<p>Den Parameter beim operator solltest du als konstante Referenz übergeben um unnötige Kopien zu vermeiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431768</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Sun, 06 Jan 2008 13:25:26 GMT</pubDate></item><item><title><![CDATA[Reply to Index Operator überladen mit AnsiString on Sun, 06 Jan 2008 14:27:01 GMT]]></title><description><![CDATA[<p>In dem Fall ist das eigentlich egal, da ein AnsiString intern nur einen &quot;char *&quot; als Member besitzt (mehr nicht).<br />
Und selbst die VCL übergibt AnsiString oftmals als Kopie, aber generell sollte man Klassenobjekte als konstante Referenz übergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431813</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Sun, 06 Jan 2008 14:27:01 GMT</pubDate></item><item><title><![CDATA[Reply to Index Operator überladen mit AnsiString on Mon, 07 Jan 2008 09:06:59 GMT]]></title><description><![CDATA[<p>Genau deswegen sagte ich das ja. <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/1432236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432236</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 07 Jan 2008 09:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Index Operator überladen mit AnsiString on Mon, 07 Jan 2008 12:32:39 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe ich auch gemacht ;-). Das oben war ja nur ein schnell geschriebenes Beispiel. Es läuft nun zumindest so in der Anwendung.</p>
<p>Schönen Tag noch,</p>
<p>Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1432348</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432348</guid><dc:creator><![CDATA[chbr]]></dc:creator><pubDate>Mon, 07 Jan 2008 12:32:39 GMT</pubDate></item></channel></rss>