<?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[Frage zu OperatorÜberladung []]]></title><description><![CDATA[<p>wieso stürzt mein Programm ab ?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class test {

public:

	test(){x=&quot;String&quot;;}

		char&amp; operator[](int i)
	{
         return(x[i]);

	}
private:

 char* x;

};

void main(void)
{

test objekt;

objekt[2] = 't';

std::cout&lt;&lt;objekt[2];

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/269425/frage-zu-operatorüberladung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 06:53:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/269425.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 24 Jun 2010 18:15:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:15:00 GMT]]></title><description><![CDATA[<p>wieso stürzt mein Programm ab ?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class test {

public:

	test(){x=&quot;String&quot;;}

		char&amp; operator[](int i)
	{
         return(x[i]);

	}
private:

 char* x;

};

void main(void)
{

test objekt;

objekt[2] = 't';

std::cout&lt;&lt;objekt[2];

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1916927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916927</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:15:00 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:18:01 GMT]]></title><description><![CDATA[<p>Weil du Stringliterale nicht beschreiben darfst. Deklariere <code>x</code> als <code>std::string</code> und das Problem ist vom Tisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916929</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:18:01 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:18:09 GMT]]></title><description><![CDATA[<p>Weil das String-Literal &quot;String&quot; im schreibgeschützten Teil der exe-Datei liegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916930</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:18:09 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:21:33 GMT]]></title><description><![CDATA[<p>häh warum darf ich keine C string beschreiben ?</p>
<p>und was wird hier im Fehlerfall zurückgeliert ?</p>
<pre><code class="language-cpp">double&amp; Vector::operator[](int i)
 {
   if (i&lt;0 || i&gt;=len) error(err_index);
   return v[i];
 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1916933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916933</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:29:37 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>häh warum darf ich keine C string beschreiben ?</p>
</blockquote>
<p>Keine String<strong>literale</strong>. Weil das der Standard nun mal vorschreibt, um dem Compiler mehr Möglichkeiten, beispielsweise zur Optimierung, zu lassen.</p>
<p>Dass man andere Literale nicht ändern kann, stört ja auch niemanden. Oder wer käme auf die Idee, <code>3 = 5;</code> zu schreiben?</p>
<p>blurry333 schrieb:</p>
<blockquote>
<p>und was wird hier im Fehlerfall zurückgeliert ?</p>
</blockquote>
<p>Nichts. Verwende in so einem Fall <code>assert</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916938</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:29:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:54:56 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Davon abgesehen ist deine Einrückung grausig (wie auch immer du Einrückst: bleibe einheitlich), ich habe mal eine kleine Ausbesserung inklusive kleinen Anmerkungen hinzugefügt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

class test
{
  public:
    test()
    :   x(&quot;String&quot;) // Initialisierungsliste ist der nachträglichen
    {               // Zuweisung vorzuziehen.
    }

    char &amp; operator[](int i)
    {
        return(x[i]);
    }

  private:
    std::string x;
};

int main() // Es gibt kein &quot;void main&quot;, und das &quot;(void)&quot; kann man sich sparen,
{          //   dies ist ein C-Relikt. Unter C++ ist &quot;()&quot; weitaus üblicher.
    test objekt;
    objekt[2] = 't';

    std::cout &lt;&lt; objekt[2];

    // int main() gibt als Ausnahme zu anderen Funktionen mit Rückgabewert
    // implizit 0 zurück, wenn nichts anderes angegeben wird. Daher ist hier
    // ein return 0; unnötig.
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1916952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916952</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:55:18 GMT]]></title><description><![CDATA[<p>Und nicht zu vergessen ein:</p>
<pre><code class="language-cpp">return 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1916954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916954</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:55:18 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 18:56:50 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p>Und nicht zu vergessen ein:</p>
<pre><code class="language-cpp">return 0;
</code></pre>
</blockquote>
<p>Nein, siehe noch meinen hinzugefügten Kommentat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916955</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 24 Jun 2010 18:56:50 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 19:49:56 GMT]]></title><description><![CDATA[<p>&quot;string&quot; bedeutet wohl so etwas wie konstanter String.</p>
<p>Wundert mich nur dass der Compiler keinen Fehler erklärt.<br />
Dies macht erst der linker bei der Programmausführung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1916989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1916989</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 24 Jun 2010 19:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 20:21:14 GMT]]></title><description><![CDATA[<p>das geht auch nicht</p>
<pre><code class="language-cpp">class test { 

public: 

	test(){x=&quot;String&quot;;} 

        char&amp; operator[](int i) 
    { 
         return(x[i]); 

    } 
private: 

 string x; 

};
</code></pre>
<p>wußt ich ja gar nicht.</p>
<p>#include &lt;string&gt;</p>
<p>ist unnötig <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/1917001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917001</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 24 Jun 2010 20:21:14 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 20:09:53 GMT]]></title><description><![CDATA[<p>Aufmerksam asc post lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917002</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Thu, 24 Jun 2010 20:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Thu, 24 Jun 2010 20:19:58 GMT]]></title><description><![CDATA[<p>ok schon klar die klasse string liegt im namespace std ;</p>
<p>ok das wär geklärt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917005</guid><dc:creator><![CDATA[blurry333]]></dc:creator><pubDate>Thu, 24 Jun 2010 20:19:58 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu OperatorÜberladung [] on Fri, 25 Jun 2010 06:41:15 GMT]]></title><description><![CDATA[<p>blurry333 schrieb:</p>
<blockquote>
<p>ok schon klar die klasse string liegt im namespace std ;</p>
<p>ok das wär geklärt</p>
</blockquote>
<p>Und &lt;string&gt; ist nötig, vielleicht Ausnahmsweise nicht auch deiner jetzigen Umgebung [Da es sein könnte das iostreams in der bei dir vorliegenden Bibliothek sting inkludiert], aber das ist nicht der Standard.</p>
<p>blurry333 schrieb:</p>
<blockquote>
<p>&quot;string&quot; bedeutet wohl so etwas wie konstanter String.</p>
</blockquote>
<p>Eben nicht. Im Gegensatz zu den klassischen C-Strings (char[], char*) handelt es sich hier um eine vollwertige Stringklasse, die sich auch um die Speicherverwaltung kümmert. So ist es z.B. möglich string &quot;aufzuaddieren&quot; usw.</p>
<pre><code class="language-cpp">// Sieht nicht wirklich konstant aus, oder?
std::string x = &quot;Hallo&quot;;
x += &quot; Welt&quot;;
std::cout &lt;&lt; x;
</code></pre>
<p>Des weiteren liefert die Stringklasse diverse Stringbehandlungen als Methode von Haus aus mit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1917092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1917092</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 25 Jun 2010 06:41:15 GMT</pubDate></item></channel></rss>