<?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[Objekte an Funktionen übergeben und diese innerhalb der Funktion verändern]]></title><description><![CDATA[<p>Guten Morgen,<br />
ich hoffe, der Titel ist nicht zu verwirrend.</p>
<p>Es geht um einen Code der folgenden Struktur:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;

class Blop {

private:
  int number;

public:

  Blop() {
    number = 0;
  }

  void increase() { number++; }

  int get_number() { return number; }
};

void doit(Blop b) {
  b.increase();
  b.increase();
}

int main() {
  Blop b;
  doit(b);
  std::cout &lt;&lt; b.get_number();
  return 0;
}
</code></pre>
<p>Ich habe also:<br />
- eine Klasse Blop, deren Objekte nur einen Integer besitzen, dieser wird zu Beginn 0 gesetzt und kann mittels der Funktion increase() um 1 erhöht und mit get_number() ausgegeben werden.<br />
- eine Funktion doit(Blop b), die ein Objekt der Klasse Blop bekommt und dann increase() zweimal ausführt.</p>
<p>Ich erzeuge ein Objekt b der Klasse Blop und führe die Funktion doit(b) aus. Dann sollte die b.number um zwei erhöht worden sein.</p>
<p>Unerwartetes (für mich) Resultat:<br />
b.get_number() = 0</p>
<p>Woran liegt das? Wie kann ich das ändern?<br />
mfG,<br />
Matthias K</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/141085/objekte-an-funktionen-übergeben-und-diese-innerhalb-der-funktion-verändern</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 13:20:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141085.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Mar 2006 08:02:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Objekte an Funktionen übergeben und diese innerhalb der Funktion verändern on Sun, 19 Mar 2006 08:02:28 GMT]]></title><description><![CDATA[<p>Guten Morgen,<br />
ich hoffe, der Titel ist nicht zu verwirrend.</p>
<p>Es geht um einen Code der folgenden Struktur:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;

class Blop {

private:
  int number;

public:

  Blop() {
    number = 0;
  }

  void increase() { number++; }

  int get_number() { return number; }
};

void doit(Blop b) {
  b.increase();
  b.increase();
}

int main() {
  Blop b;
  doit(b);
  std::cout &lt;&lt; b.get_number();
  return 0;
}
</code></pre>
<p>Ich habe also:<br />
- eine Klasse Blop, deren Objekte nur einen Integer besitzen, dieser wird zu Beginn 0 gesetzt und kann mittels der Funktion increase() um 1 erhöht und mit get_number() ausgegeben werden.<br />
- eine Funktion doit(Blop b), die ein Objekt der Klasse Blop bekommt und dann increase() zweimal ausführt.</p>
<p>Ich erzeuge ein Objekt b der Klasse Blop und führe die Funktion doit(b) aus. Dann sollte die b.number um zwei erhöht worden sein.</p>
<p>Unerwartetes (für mich) Resultat:<br />
b.get_number() = 0</p>
<p>Woran liegt das? Wie kann ich das ändern?<br />
mfG,<br />
Matthias K</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019483</guid><dc:creator><![CDATA[MatthiasK]]></dc:creator><pubDate>Sun, 19 Mar 2006 08:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte an Funktionen übergeben und diese innerhalb der Funktion verändern on Sun, 19 Mar 2006 08:06:00 GMT]]></title><description><![CDATA[<p>Der Paramenter zur Funktion <em>doit</em> muss ein Zeiger oder vorzugsweise eine Referenz sein, damit er verändert werden kann. <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>[cpp]<br />
void doit(Blop&amp; b) {<br />
b.increase();<br />
b.increase();<br />
}<br />
[cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019485</guid><dc:creator><![CDATA[#benutzername]]></dc:creator><pubDate>Sun, 19 Mar 2006 08:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte an Funktionen übergeben und diese innerhalb der Funktion verändern on Sun, 19 Mar 2006 08:06:55 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void doit(Blop&amp; b) {
b.increase();
b.increase();
}
</code></pre>
<p>(Ich hasse diese BB-Tags ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019486</guid><dc:creator><![CDATA[#benutzername]]></dc:creator><pubDate>Sun, 19 Mar 2006 08:06:55 GMT</pubDate></item><item><title><![CDATA[Reply to Objekte an Funktionen übergeben und diese innerhalb der Funktion verändern on Sun, 19 Mar 2006 13:41:45 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Dazu gab es gerade erst eine Diskussion. Ich würde an deiner Stelle mit einem Zeiger auf die Klasse arbeiten und diesen übergeben. Ist aber Geschmackssache.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019650</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 19 Mar 2006 13:41:45 GMT</pubDate></item></channel></rss>