<?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[Wie genau geht call by reference mit dem BCB]]></title><description><![CDATA[<p>Hi,</p>
<p>nach meiner Überlegung mit globalen Variablen zu arbeiten, habe ich mich entschieden lokal zu arbeiten und dann call by reference zu nehmen.</p>
<p>Leider weiß ich nicht genau wie es geht. Habe verschiedenes ausprobiert und es hat auch kompiliert, aber wenn ich es mache, dann soll es auch richtig sein.</p>
<p>Hier mal einige Zeilen Code:</p>
<pre><code class="language-cpp">// dieses object wird lokal erzeugt
TStringList *list = new TStringlist();

// füge elemente hinzu
addelements(list);

// so die funktion
void __fastcall TForm1::addelements(TStringList *list)
{
   list-&gt;Add(&quot;test&quot;);
}

// in der header steht dann unter public
void __fastcall addelements(TStringList *list)
</code></pre>
<p>Ist dieses Beispiel so richtig, dass ich einfach die Adresse meiner Stringlist an die FUnktion addelements übergebe und diese dann den Wert hinzufügt und der Wert dann auch korrekt anschließend in der Stringlist drinnen ist?</p>
<p>Maike</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163023/wie-genau-geht-call-by-reference-mit-dem-bcb</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 23:51:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163023.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Oct 2006 10:55:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie genau geht call by reference mit dem BCB on Wed, 25 Oct 2006 10:55:44 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>nach meiner Überlegung mit globalen Variablen zu arbeiten, habe ich mich entschieden lokal zu arbeiten und dann call by reference zu nehmen.</p>
<p>Leider weiß ich nicht genau wie es geht. Habe verschiedenes ausprobiert und es hat auch kompiliert, aber wenn ich es mache, dann soll es auch richtig sein.</p>
<p>Hier mal einige Zeilen Code:</p>
<pre><code class="language-cpp">// dieses object wird lokal erzeugt
TStringList *list = new TStringlist();

// füge elemente hinzu
addelements(list);

// so die funktion
void __fastcall TForm1::addelements(TStringList *list)
{
   list-&gt;Add(&quot;test&quot;);
}

// in der header steht dann unter public
void __fastcall addelements(TStringList *list)
</code></pre>
<p>Ist dieses Beispiel so richtig, dass ich einfach die Adresse meiner Stringlist an die FUnktion addelements übergebe und diese dann den Wert hinzufügt und der Wert dann auch korrekt anschließend in der Stringlist drinnen ist?</p>
<p>Maike</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160904</guid><dc:creator><![CDATA[Maike7]]></dc:creator><pubDate>Wed, 25 Oct 2006 10:55:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wie genau geht call by reference mit dem BCB on Wed, 25 Oct 2006 10:58:15 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ja das ist richtig.<br />
Denk dran das du die Liste nach Gebrauch auch wieder löschen solltest.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160907</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 25 Oct 2006 10:58:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wie genau geht call by reference mit dem BCB on Wed, 25 Oct 2006 11:45:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>danke für die Bestätigung. Löschen geht klar. Ich meine mich an früher noch zuerinnern, dass bei call by reference immer der &amp; operator mit ins spiel kam, wo dann eine referenz übergeben wird. Dies ist dann wohl nur bei statischen Objekte?</p>
<p>Maike</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1160934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160934</guid><dc:creator><![CDATA[Maike7]]></dc:creator><pubDate>Wed, 25 Oct 2006 11:45:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wie genau geht call by reference mit dem BCB on Wed, 25 Oct 2006 12:01:29 GMT]]></title><description><![CDATA[<p>Maike7 schrieb:</p>
<blockquote>
<p>danke für die Bestätigung. Löschen geht klar. Ich meine mich an früher noch zuerinnern, dass bei call by reference immer der &amp; operator mit ins spiel kam, wo dann eine referenz übergeben wird. Dies ist dann wohl nur bei statischen Objekte?</p>
</blockquote>
<p>Nein, du kannst den Parameter in diesem Beispiel natürlich auch als Referenz übergeben, allerdings erleichtert das die Parameterübergabe nicht. Technisch gesehen sind Referenzen nichts anderes als konstante Zeiger, die implizit dereferenziert werden und auf deren Adresse kein (direkter) Zugriff besteht.<br />
Mit Referenzschreibweise sähe dein Beispiel so aus:</p>
<pre><code class="language-cpp">// Deklaration:
class TForm1 ... { ...
void __fastcall addelements (TStringList&amp; list);
... };

// Implementation:
void __fastcall TForm1::addelements (TStringList&amp; list)
{
   list.Add (&quot;test&quot;);
}

// Verwendung:
TStringList* list = new TStringlist;
addelements (*list);
delete list; // hinterher wieder aufräumen
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1160944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1160944</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Wed, 25 Oct 2006 12:01:29 GMT</pubDate></item></channel></rss>