<?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[operator[] problem]]></title><description><![CDATA[<p>hola leute</p>
<p>irgendwie seh ich den wald vor lauuter baeume nicht mehr.<br />
hab folgenden code:</p>
<pre><code class="language-cpp">class CharStat
   {
      private:
         uint32 stat[256];

      public:
         CharStat(void) { Clear(); }
         ~CharStat(void) { }

         void Clear(void) { memset(stat, 0, sizeof(uint32) * 256); }
         uint32&amp; operator[](uint32 pos) { return stat[pos]; }

         void operator()(const uint8 *buffer, uint32 buffer_size);
   };
</code></pre>
<p>wenn ich nun mal</p>
<pre><code>CharStat stat;
...
uint32 temp = stat[0];
</code></pre>
<p>verwende bekomm ich immer folgenden fehler:</p>
<pre><code>error C2678: Binärer Operator '[': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'const txl::CharStat' akzeptiert (oder keine geeignete Konvertierung möglich)
</code></pre>
<p>sieht da jemand den fehler ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151339/operator-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 10:15:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151339.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Jun 2006 13:24:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 13:24:21 GMT]]></title><description><![CDATA[<p>hola leute</p>
<p>irgendwie seh ich den wald vor lauuter baeume nicht mehr.<br />
hab folgenden code:</p>
<pre><code class="language-cpp">class CharStat
   {
      private:
         uint32 stat[256];

      public:
         CharStat(void) { Clear(); }
         ~CharStat(void) { }

         void Clear(void) { memset(stat, 0, sizeof(uint32) * 256); }
         uint32&amp; operator[](uint32 pos) { return stat[pos]; }

         void operator()(const uint8 *buffer, uint32 buffer_size);
   };
</code></pre>
<p>wenn ich nun mal</p>
<pre><code>CharStat stat;
...
uint32 temp = stat[0];
</code></pre>
<p>verwende bekomm ich immer folgenden fehler:</p>
<pre><code>error C2678: Binärer Operator '[': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'const txl::CharStat' akzeptiert (oder keine geeignete Konvertierung möglich)
</code></pre>
<p>sieht da jemand den fehler ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085119</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sun, 25 Jun 2006 13:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 13:28:26 GMT]]></title><description><![CDATA[<p>Ist dein stat-Objekt beim Aufruf von operator[] const? Das würde die Fehlermeldung erklären, denn du hast diesen Operator nur für nicht-konstante Objekte definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085122</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Sun, 25 Jun 2006 13:28:26 GMT</pubDate></item><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 13:39:42 GMT]]></title><description><![CDATA[<p>re</p>
<p>in der tat war es so.<br />
hab nun den rueckgabewert von operator[] von 'uint32&amp;' auf 'uint32' geaendert.<br />
aber die meldung kommt jetz noch immer.<br />
jetzt waere doch egal ob das object const ist oder nicht. oder ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085129</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sun, 25 Jun 2006 13:39:42 GMT</pubDate></item><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 13:41:03 GMT]]></title><description><![CDATA[<p>Nein, das hat damit absolut nichts zu tun.</p>
<p>Eine const-Funktion könnte zum Beispiel so aussehen:</p>
<pre><code class="language-cpp">uint32 operator[](uint32 pos) const { return stat[pos]; }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1085130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085130</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Sun, 25 Jun 2006 13:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 13:50:50 GMT]]></title><description><![CDATA[<p>Z2 schrieb:</p>
<blockquote>
<p>Nein, das hat damit absolut nichts zu tun.</p>
<p>Eine const-Funktion könnte zum Beispiel so aussehen:</p>
<pre><code class="language-cpp">uint32 operator[](uint32 pos) const { return stat[pos]; }
</code></pre>
</blockquote>
<p>aber dann hab ich ja auch nicht mehr die moeglichkeit per operator[] einen wert zu aendern. das waer doch dann bloed. wie mach ich das ohne kopie im rueckgabewert und das ich einen wert , vorausgesetzt das das CharStat objekt nicht const ist, aendern kann ?</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085143</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sun, 25 Jun 2006 13:50:50 GMT</pubDate></item><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 14:06:35 GMT]]></title><description><![CDATA[<p>Du mußt die operatorfunktion auch noch const machen. Bastel dir doch zwei []Operatoren. Einen const mit Elementrückgabe und einen nicht const mit Referenzrückgabe.<br />
[edit]man ist das spät. <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="🙂"
    /> [edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085144</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Sun, 25 Jun 2006 14:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 14:02:16 GMT]]></title><description><![CDATA[<p>Meep Meep schrieb:</p>
<blockquote>
<p>aber dann hab ich ja auch nicht mehr die moeglichkeit per operator[] einen wert zu aendern.</p>
</blockquote>
<p>Wenn das zugrundeliegende Objekt const ist, sollst Du es auch garnicht ändern können <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/1085154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085154</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Sun, 25 Jun 2006 14:02:16 GMT</pubDate></item><item><title><![CDATA[Reply to operator[] problem on Sun, 25 Jun 2006 14:06:07 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>Meep Meep schrieb:</p>
<blockquote>
<p>aber dann hab ich ja auch nicht mehr die moeglichkeit per operator[] einen wert zu aendern.</p>
</blockquote>
<p>Wenn das zugrundeliegende Objekt const ist, sollst Du es auch garnicht ändern können <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>
</blockquote>
<p>das ist mir schon klar. waere auch logischer, das er mir dann ne fehlermeldung ausgeben wuerde wenn ich an nem const-objekt ne aenderung machen moechte.<br />
wenn ich nur eine kopie des wertes zurueckgebe, koennte ich es ja uach nicht aendern.<br />
werd es wohl so machen muessen wie braunstein es meinte. zwar umstaendlich deshalb zwei members schreiben zu muessen, aber da kann man wohl nix machen.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085161</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sun, 25 Jun 2006 14:06:07 GMT</pubDate></item></channel></rss>