<?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[Klasse und lokale variablen]]></title><description><![CDATA[<p>moin community,</p>
<p>wollt's eigentlich nur ganz schnell machen, weil ich gerade zu einer Besprechung gehe:</p>
<p>Auf dem Feld tut sich nichts(also in dem Fall in &quot;Ger&quot;), obwohl ich in eingabe eingegeben habe, dass der User zwei Zahlen eingibt und dann wird eine Zahl eine andere usw.. In ausgabe(std::vector&lt;int&gt; Ger) hab ich alle sachen ausgeben wollen aber es scheint nicht zu klappen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Meine nur damit,dass das gleiche Feld wie vorher kommt mit den Zahlen ...</p>
<pre><code class="language-cpp">class Test
{
public:
void output_int(std::vector&lt;int&gt; Ger);
void eingabe(std::vector&lt;int&gt; Ger);
void ausgabe(std::vector&lt;int&gt; Ger);

private:
int e1, e2;
std::vector&lt;int&gt; Ger;
};

void Test::output_int(std::vector&lt;int&gt; Ger)
{
for(int etwas = 0; etwas != Ger.size(); ++etwas)
{
std::cout &lt;&lt; Ger[etwas] &lt;&lt; std::endl;
}
}

void Test::eingabe(std::vector&lt;int&gt; Ger)
{
std::cin &gt;&gt; e1 &gt;&gt; e2;
Ger[e1] = Ger[e2];
}

void Test::ausgabe(std::vector&lt;int&gt; Ger)
{
output(Ger);
eingabe(Ger);
output(Ger);
}
</code></pre>
<p>Nur die Klasse ist ein wenig komisch, ansonsten hab ich in der MainCPP alles inkludiert und alles andere auch noch gemacht <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>
<p>Liebe Grüße<br />
Thomas Warhagen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188047/klasse-und-lokale-variablen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 01:36:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188047.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jul 2007 15:08:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 15:08:58 GMT]]></title><description><![CDATA[<p>moin community,</p>
<p>wollt's eigentlich nur ganz schnell machen, weil ich gerade zu einer Besprechung gehe:</p>
<p>Auf dem Feld tut sich nichts(also in dem Fall in &quot;Ger&quot;), obwohl ich in eingabe eingegeben habe, dass der User zwei Zahlen eingibt und dann wird eine Zahl eine andere usw.. In ausgabe(std::vector&lt;int&gt; Ger) hab ich alle sachen ausgeben wollen aber es scheint nicht zu klappen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Meine nur damit,dass das gleiche Feld wie vorher kommt mit den Zahlen ...</p>
<pre><code class="language-cpp">class Test
{
public:
void output_int(std::vector&lt;int&gt; Ger);
void eingabe(std::vector&lt;int&gt; Ger);
void ausgabe(std::vector&lt;int&gt; Ger);

private:
int e1, e2;
std::vector&lt;int&gt; Ger;
};

void Test::output_int(std::vector&lt;int&gt; Ger)
{
for(int etwas = 0; etwas != Ger.size(); ++etwas)
{
std::cout &lt;&lt; Ger[etwas] &lt;&lt; std::endl;
}
}

void Test::eingabe(std::vector&lt;int&gt; Ger)
{
std::cin &gt;&gt; e1 &gt;&gt; e2;
Ger[e1] = Ger[e2];
}

void Test::ausgabe(std::vector&lt;int&gt; Ger)
{
output(Ger);
eingabe(Ger);
output(Ger);
}
</code></pre>
<p>Nur die Klasse ist ein wenig komisch, ansonsten hab ich in der MainCPP alles inkludiert und alles andere auch noch gemacht <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>
<p>Liebe Grüße<br />
Thomas Warhagen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333158</guid><dc:creator><![CDATA[Thomas W.]]></dc:creator><pubDate>Thu, 26 Jul 2007 15:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 16:17:23 GMT]]></title><description><![CDATA[<p>hi nochmal</p>
<p>kann mir bitte jemand eine antwort zu meiner Klasse &quot;Test&quot; geben?</p>
<p>Liebe Grüße<br />
Thomas Warhagen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333203</guid><dc:creator><![CDATA[Thomas W.]]></dc:creator><pubDate>Thu, 26 Jul 2007 16:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 16:25:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>So wie es in deinem Quellcodeausschnitt aussieht wird dein vector nirgends mit Elementen gefüllt. Mit dem [] aber greifst du dann auf ungültigen Speicher zu. Da kannst du froh sein das es nur eine leere Ausgabe anzeigt und nicht gleich abstürzt.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333209</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 26 Jul 2007 16:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 16:29:35 GMT]]></title><description><![CDATA[<p>du hast ein scoping-problem: wenn du eine member-funktion hast, die einem paramter hat, der namesgleich mit einer member-variable ist, so wird in der funktion der parameter und _nicht_ die member-variable verwendet, wenn du den namen nutzt.<br />
wenn du auf die member-variable zugreifen will, geht das so:<br />
Klasse::variable</p>
<p>will heißen:</p>
<pre><code class="language-cpp">void Test::eingabe(std::vector&lt;int&gt; Ger)
{
   std::cin &gt;&gt; e1 &gt;&gt; e2;
   Ger[e1] = Ger[e2];
}
</code></pre>
<p>das Ger in der letzten zeile ist dein übergebener parameter und nicht deine member-variable. da du es als call-by-value übergeben hast, wurde beim aufruf eine kopie der übergeben variable erzeugt, die am ende wieder vernichtet wird.</p>
<p>du hast jetzt zwei dinge zur auswahl: entweder du machst das ganze per reference oder lässt die parameter deiner funktionen weg und setzt bei ausgabe einmal deine member-variable richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333210</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Thu, 26 Jul 2007 16:29:35 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 19:10:05 GMT]]></title><description><![CDATA[<p>ghorst schrieb:</p>
<blockquote>
<p>..oder lässt die parameter deiner funktionen weg und setzt bei ausgabe einmal deine member-variable richtig.</p>
</blockquote>
<p>joa aber wie?<br />
kannst du mir ein beispiel zeigen bitte?<br />
ich verstehe das mit</p>
<blockquote>
<p>setzt bei ausgabe einmal deine member-variable richtig.</p>
</blockquote>
<p>nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333307</guid><dc:creator><![CDATA[Thomas W.]]></dc:creator><pubDate>Thu, 26 Jul 2007 19:10:05 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 19:25:14 GMT]]></title><description><![CDATA[<p>entweder mittels referenz so:</p>
<pre><code class="language-cpp">class Test
{
public:
void output_int(const std::vector&lt;int&gt;&amp; Ger);
void eingabe(std::vector&lt;int&gt;&amp; Ger);
void ausgabe(std::vector&lt;int&gt; Ger);

private:
int e1, e2;
};

void Test::output_int(const std::vector&lt;int&gt;&amp; Ger)
{
for(int etwas = 0; etwas != Ger.size(); ++etwas)
{
std::cout &lt;&lt; Ger[etwas] &lt;&lt; std::endl;
}
}

void Test::eingabe(std::vector&lt;int&gt;&amp; Ger)
{
std::cin &gt;&gt; e1 &gt;&gt; e2;
Ger[e1] = Ger[e2];
}

void Test::ausgabe(std::vector&lt;int&gt; Ger)
{
output(Ger);
eingabe(Ger);
output(Ger);
}
</code></pre>
<p>oder per richtiger nutzung der member-variable so:</p>
<pre><code class="language-cpp">class Test
{
public:
void output_int();
void eingabe();
void ausgabe(const std::vector&lt;int&gt;&amp; Ger);

private:
int e1, e2;
std::vector&lt;int&gt; Ger;
};

void Test::output_int()
{
for(int etwas = 0; etwas != Ger.size(); ++etwas)
{
std::cout &lt;&lt; Ger[etwas] &lt;&lt; std::endl;
}
}

void Test::eingabe()
{
std::cin &gt;&gt; e1 &gt;&gt; e2;
Ger[e1] = Ger[e2];
}

void Test::ausgabe(const std::vector&lt;int&gt;&amp; Ger)
{
this-&gt;Ger = Ger;
output();
eingabe();
output();
}
</code></pre>
<p>ich halte ehrlich gesagt die erste variante für eleganter.</p>
<p>ich habe dir in ersten fall noch ein const &amp; in die output-funktion gesetzt, damit das array nicht kopiert weden muss. bei zweiten das gleiche für die ausgabe, da wir darin das array eh einmal kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333322</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Thu, 26 Jul 2007 19:25:14 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 19:54:02 GMT]]></title><description><![CDATA[<p>hi</p>
<p>danke <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>
<p>aber das zweite scheint nicht zu klappen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
das erste funktioniert, doch ich verstehe den Sinn der Referenzen in deinem Code nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333352</guid><dc:creator><![CDATA[Thomas W.]]></dc:creator><pubDate>Thu, 26 Jul 2007 19:54:02 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 20:02:05 GMT]]></title><description><![CDATA[<p>Thomas W. schrieb:</p>
<blockquote>
<p>aber das zweite scheint nicht zu klappen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>joar, mir fällt auch gerade auf, warum. <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="😉"
    /> ich rufe die funktion output und nicht output_int auf. ansonsten sollte das so funktionieren oder besser: mir fällt nichts auf, was daran nicht funktionieren sollte.</p>
<p>Thomas W. schrieb:</p>
<blockquote>
<p>das erste funktioniert, doch ich verstehe den Sinn der Referenzen in deinem Code nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
</blockquote>
<p>naja. mit den referenzen übergibst du parameter so, das sie von der funktion verändert werden können, was du in eingabe() ja machen willst.</p>
<p>die konstante referenz ist nur ein trick, um das erzeugen einer unnötigen kopie zu verhindern, was gerade bei vector&lt;&gt; ein recht aufwendiger vorgang sein kann. das geht aber nur, wenn man die daten intern nicht ändern will (was im ersten fall bei output_int gegeben ist) bzw. sie eh irgendwo hinkopieren will (was bei ausgabe im zweiten fall so ist.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333358</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333358</guid><dc:creator><![CDATA[ghorst]]></dc:creator><pubDate>Thu, 26 Jul 2007 20:02:05 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 20:18:11 GMT]]></title><description><![CDATA[<p>heisst das mit den referenzen also,dass wenn zbsp. &quot;Ger&quot; (membervariable) ein vector ist und ich in einer Funktion Ger als Referenz(vector&lt;..&gt; &amp;Ger) übergebe,dass immer nur &quot;Ger&quot; geändert wird und kein neuer Vector erstellt wird?<br />
kannst du mir ein bisschen mehr zum Thema referenzen bitte erklären? die tutorials, was ich mir angeschaut hab, machen nur solche beispiele wie zbsp.:</p>
<pre><code class="language-cpp">int haha = 55;
int &amp;eh = haha; // eh = haha = 55 ^^
haha = 77; // beide 77 ..
</code></pre>
<p>das hat doch überhaupt nichts mit meinem problem zu tun,deswegen frag ich ja^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333368</guid><dc:creator><![CDATA[Thomas W.]]></dc:creator><pubDate>Thu, 26 Jul 2007 20:18:11 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 20:48:03 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Thomas W. schrieb:</p>
<blockquote>
<p>heisst das mit den referenzen also,dass wenn zbsp. &quot;Ger&quot; (membervariable) ein vector ist und ich in einer Funktion Ger als Referenz(vector&lt;..&gt; &amp;Ger) übergebe,dass immer nur &quot;Ger&quot; geändert wird und kein neuer Vector erstellt wird?</p>
</blockquote>
<p>Vollkommen korrekt</p>
<blockquote>
<p>kannst du mir ein bisschen mehr zum Thema referenzen bitte erklären? die tutorials, was ich mir angeschaut hab, machen nur solche beispiele wie zbsp.:</p>
<pre><code class="language-cpp">int haha = 55;
int &amp;eh = haha; // eh = haha = 55 ^^
haha = 77; // beide 77 ..
</code></pre>
<p>das hat doch überhaupt nichts mit meinem problem zu tun,deswegen frag ich ja^^</p>
</blockquote>
<p>Doch das ist genau das gleiche wie bei deiner Funktion, nur das bei dir &quot;eh&quot; der Parameter der Funktion ist und du &quot;eh&quot; änderst um &quot;haha&quot; mitzuändern.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333393</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 26 Jul 2007 20:48:03 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse und lokale variablen on Thu, 26 Jul 2007 20:55:01 GMT]]></title><description><![CDATA[<p>ok danke, kanns nun ein bisschen besser <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="😉"
    /><br />
danke euch beiden für den tollen support.</p>
<p>Liebe Grüße,<br />
Thomas Warhagen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1333397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1333397</guid><dc:creator><![CDATA[Thomas W.]]></dc:creator><pubDate>Thu, 26 Jul 2007 20:55:01 GMT</pubDate></item></channel></rss>