<?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[CString-Problem]]></title><description><![CDATA[<p>hi, warum kann ich CStrings nicht per Referenz zurückgeben????? Die Ausgabe mit cout(LPCSTR) liefert immer nur kryptische Zeichen... lasse ich die Referenz weg geht alles ohne Probleme.</p>
<p>z.b<br />
const CString &amp; xxx::test()const<br />
{<br />
CString str = &quot;Hallo&quot;;<br />
return str;<br />
}</p>
<p>MfG dohan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/44801/cstring-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 20:36:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/44801.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Aug 2003 07:58:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CString-Problem on Mon, 04 Aug 2003 07:58:57 GMT]]></title><description><![CDATA[<p>hi, warum kann ich CStrings nicht per Referenz zurückgeben????? Die Ausgabe mit cout(LPCSTR) liefert immer nur kryptische Zeichen... lasse ich die Referenz weg geht alles ohne Probleme.</p>
<p>z.b<br />
const CString &amp; xxx::test()const<br />
{<br />
CString str = &quot;Hallo&quot;;<br />
return str;<br />
}</p>
<p>MfG dohan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/323932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/323932</guid><dc:creator><![CDATA[dohan]]></dc:creator><pubDate>Mon, 04 Aug 2003 07:58:57 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Mon, 04 Aug 2003 08:10:14 GMT]]></title><description><![CDATA[<p>Wenn CString als Referenz zurückgegeben werden soll, dann sollte das Ganze so aussehen:</p>
<pre><code class="language-cpp">const CString&amp; xxx::test()const
{
 static CString str(&quot;&quot;);
 str = &quot;Hallo&quot;;
 return str;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/323942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/323942</guid><dc:creator><![CDATA[Shaggy]]></dc:creator><pubDate>Mon, 04 Aug 2003 08:10:14 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Mon, 04 Aug 2003 11:16:14 GMT]]></title><description><![CDATA[<p>danke für die antwort ... warum muss man den die variable static deklarieren??? gibt es dafür nen bestimmten grund???</p>
<p>mfg dohan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/324092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/324092</guid><dc:creator><![CDATA[dohan]]></dc:creator><pubDate>Mon, 04 Aug 2003 11:16:14 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Mon, 04 Aug 2003 11:24:30 GMT]]></title><description><![CDATA[<p>mit static bleibt die variable erhalten.</p>
<p>du initialisiert sie in der methode mit:</p>
<pre><code class="language-cpp">static int i = 0;
</code></pre>
<p>und dann weist du ihr einen wert zu. beim nächsten aufruf der methode hat sie den wert dann halt noch.</p>
<p>ne normale variable in der methode wir an deren ende ja wieder zerstört. eine static wird erst beim programmende zerstört.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/324095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/324095</guid><dc:creator><![CDATA[Frenzy]]></dc:creator><pubDate>Mon, 04 Aug 2003 11:24:30 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Mon, 04 Aug 2003 21:13:53 GMT]]></title><description><![CDATA[<p>wie kann ich denn den inhalt der variable bei jedem methodenaufruf ändern ohne zeiger zu verwenden???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/324552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/324552</guid><dc:creator><![CDATA[dohan]]></dc:creator><pubDate>Mon, 04 Aug 2003 21:13:53 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Mon, 04 Aug 2003 21:24:34 GMT]]></title><description><![CDATA[<p>Du kannst CString auch ohne Referenz zurückgeben da der Compiler das optimiert.<br />
Er optimiert aber nur wenn du bei jedem return in der Funktion das gleiche Objekt zurückgibst.</p>
<p>wenn du schreibst:</p>
<pre><code class="language-cpp">CString xxx()
{
  CString text;
  text = (...);
  return text;
}
</code></pre>
<p>dann macht er im Prinzip daraus:</p>
<pre><code class="language-cpp">void xxx(CString&amp; text)
{
  text = (...);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/324555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/324555</guid><dc:creator><![CDATA[Oliver]]></dc:creator><pubDate>Mon, 04 Aug 2003 21:24:34 GMT</pubDate></item><item><title><![CDATA[Reply to CString-Problem on Tue, 05 Aug 2003 12:06:25 GMT]]></title><description><![CDATA[<p>Das obige Optimierkonzept is ein wenig hausbacken <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>
<p>Meines erachtens optimiert nicht der Compiler, sondern CString hat einen Copy-Konstruktor, der nicht jedes Zeichen im String kopiert, sondern diese nur 1 Mal im Speicher hält und dann nur Zeiger auf die Zeichenkette kopiert. Mittels einem Referenzzählers bekommt er dann beim Ende der Funktion mit, dass noch jmd. auf den String guggt und löscht die Zeichen nicht aus dem Speicher, sondern erst wenn keine Variable mehr auf den String verweist.</p>
<p>Ergo.. wie schon von Vorrednern festgestellt... CString zurückgeben ist nahezu genauso schnell wie es bei const CString&amp; wäre.</p>
<p>/ Mibo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/324895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/324895</guid><dc:creator><![CDATA[Mibo]]></dc:creator><pubDate>Tue, 05 Aug 2003 12:06:25 GMT</pubDate></item></channel></rss>