<?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[referencen swappen]]></title><description><![CDATA[<p>hallo, ich habe keine kleines problem mit meinem code,<br />
ich habe 2 stacks, einer soll als quelle dienen, und<br />
aus den objekten darin werden dann objekte generiert, die in target<br />
landen sollen, dabie werden die objekte in quelle &quot;verbraucht&quot;</p>
<p>also dachte ich mir, ich baue mir 2 stacks, und tausche die dann immer<br />
über ihr referencen<br />
also das sind die stacks, und dazu die referencen :</p>
<pre><code class="language-cpp">Stack&lt;SearchState *&gt; m_openSlots1;
Stack&lt;SearchState *&gt; m_openSlots2;
Stack&lt;SearchState *&gt;&amp; actual_SourceStack;
Stack&lt;SearchState *&gt;&amp; actual_TargetStack;
</code></pre>
<p>aber das tauschen geht nicht, wie man sieht ...</p>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot;Target size before switch &quot; &lt;&lt; actual_TargetStack.size() &lt;&lt; std::endl;
std::cout &lt;&lt; &quot;Source size before switch &quot; &lt;&lt; actual_SourceStack.size() &lt;&lt; std::endl;

Stack&lt;SearchState *&gt;&amp; temp = actual_SourceStack;
actual_SourceStack = actual_TargetStack;
actual_TargetStack = temp;

std::cout &lt;&lt; &quot;Target size after switch &quot; &lt;&lt; actual_TargetStack.size() &lt;&lt; std::endl;
std::cout &lt;&lt; &quot;Source size after switch&quot; &lt;&lt; actual_SourceStack.size() &lt;&lt; std::endl;
}
</code></pre>
<p>denn das liefert :</p>
<blockquote>
<p>Target size after expanding 11<br />
Source size after expanding 0<br />
Target size after expanding 11<br />
Source size after expanding 11</p>
</blockquote>
<p>erwartet hätte ich aber (genau das was ich mit pointern bekomme)</p>
<blockquote>
<p>Target size after expanding 11<br />
Source size after expanding 0<br />
Target size after expanding 0<br />
Source size after expanding 11</p>
</blockquote>
<p>mit pointer gehts, weiss wer warum das mit referencen nicht geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/205364/referencen-swappen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 00:37:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/205364.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 Feb 2008 13:34:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to referencen swappen on Wed, 13 Feb 2008 13:34:32 GMT]]></title><description><![CDATA[<p>hallo, ich habe keine kleines problem mit meinem code,<br />
ich habe 2 stacks, einer soll als quelle dienen, und<br />
aus den objekten darin werden dann objekte generiert, die in target<br />
landen sollen, dabie werden die objekte in quelle &quot;verbraucht&quot;</p>
<p>also dachte ich mir, ich baue mir 2 stacks, und tausche die dann immer<br />
über ihr referencen<br />
also das sind die stacks, und dazu die referencen :</p>
<pre><code class="language-cpp">Stack&lt;SearchState *&gt; m_openSlots1;
Stack&lt;SearchState *&gt; m_openSlots2;
Stack&lt;SearchState *&gt;&amp; actual_SourceStack;
Stack&lt;SearchState *&gt;&amp; actual_TargetStack;
</code></pre>
<p>aber das tauschen geht nicht, wie man sieht ...</p>
<pre><code class="language-cpp">std::cout &lt;&lt; &quot;Target size before switch &quot; &lt;&lt; actual_TargetStack.size() &lt;&lt; std::endl;
std::cout &lt;&lt; &quot;Source size before switch &quot; &lt;&lt; actual_SourceStack.size() &lt;&lt; std::endl;

Stack&lt;SearchState *&gt;&amp; temp = actual_SourceStack;
actual_SourceStack = actual_TargetStack;
actual_TargetStack = temp;

std::cout &lt;&lt; &quot;Target size after switch &quot; &lt;&lt; actual_TargetStack.size() &lt;&lt; std::endl;
std::cout &lt;&lt; &quot;Source size after switch&quot; &lt;&lt; actual_SourceStack.size() &lt;&lt; std::endl;
}
</code></pre>
<p>denn das liefert :</p>
<blockquote>
<p>Target size after expanding 11<br />
Source size after expanding 0<br />
Target size after expanding 11<br />
Source size after expanding 11</p>
</blockquote>
<p>erwartet hätte ich aber (genau das was ich mit pointern bekomme)</p>
<blockquote>
<p>Target size after expanding 11<br />
Source size after expanding 0<br />
Target size after expanding 0<br />
Source size after expanding 11</p>
</blockquote>
<p>mit pointer gehts, weiss wer warum das mit referencen nicht geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1455086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1455086</guid><dc:creator><![CDATA[Treb]]></dc:creator><pubDate>Wed, 13 Feb 2008 13:34:32 GMT</pubDate></item><item><title><![CDATA[Reply to referencen swappen on Wed, 13 Feb 2008 13:38:38 GMT]]></title><description><![CDATA[<p>Du kannst Referenzen in C++ einfach nicht umbiegen. Wie sollte der Compiler denn unterscheiden, ob Du gerade operator= des referenzierten Objekts aufrufen oder die Referenz neu setzen möchtest?</p>
<p>Referenzen müssen (und können nur) bei Initialisierung an ein Objekt gebunden werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1455087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1455087</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 13 Feb 2008 13:38:38 GMT</pubDate></item></channel></rss>