<?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[Komisches Logikproblem]]></title><description><![CDATA[<p>Hier mal Code:</p>
<p>main.cpp</p>
<pre><code class="language-cpp">//***INCLUDES***//
#include &quot;main.h&quot;
#include &lt;iostream.h&gt;

//***MAIN FUNCTION***//
void main()
{
	Player player;
	Healpotion healpotion;

	cout &lt;&lt; &quot;Leben: &quot; &lt;&lt; player.health_min &lt;&lt; &quot;/&quot; &lt;&lt; player.health_max &lt;&lt; endl;
	healpotion.use();
	cout &lt;&lt; &quot;Leben nach Heiltrank: &quot; &lt;&lt; player.health_min &lt;&lt; &quot;/&quot; &lt;&lt; player.health_max &lt;&lt; endl;
}
</code></pre>
<p>main.h</p>
<pre><code class="language-cpp">#ifndef _MAIN_H_
#define _MAIN_H_

//***INCLUDES***//
#include &quot;player.h&quot;
#include &quot;items.h&quot;

//***VARIABLES, FLAGS &amp; CO.***//

#endif
</code></pre>
<p>player.cpp</p>
<pre><code class="language-cpp">//***INCLUDES***//
#include &quot;player.h&quot;

//***PLAYER-CLASS***//
Player::Player()
{
	health_min = 400;
	health_max = 500;
}
void Player::addHealth(signed long value)
{
	health_min += value;
}
</code></pre>
<p>player.h</p>
<pre><code class="language-cpp">#ifndef _PLAYER_H_
#define _PLAYER_H_

//***CLASS PLAYER***//
class Player
{
public:
	Player();

	signed long health_min;
	signed long health_max;

	void addHealth(signed long);
};

#endif
</code></pre>
<p>items.cpp</p>
<pre><code class="language-cpp">//***INCLUDES***//
#include &quot;items.h&quot;
#include &quot;player.h&quot;
#include &lt;iostream.h&gt;

//***ITEM-CLASSES***//
void Healpotion::use()
{
	Player player;
         player.addHealth(100);
	cout &lt;&lt; &quot;Added life!&quot; &lt;&lt; endl;
}
</code></pre>
<p>items.h</p>
<pre><code class="language-cpp">#ifndef _ITEMS_H_
#define _ITEMS_H_

//***CLASS PLAYER***//
class Healpotion
{
public:
	void use();
};

#endif
</code></pre>
<p>Nachdem ich healpotion.use() ausgeführt habe, hat health_min immer noch denselben Wert! Dabei sollte dieser um 100 erhöht werden.<br />
Warum passiert das nicht? Die Funktion wird aber durchgelaufen, habe ich getestet!</p>
<p>Wenn ich allerdings statt healpotion.use() lieber player.addHealth(100); schreibe, funktionierts!</p>
<p>Dabei macht healpotion.use() nichts Anderes als player.addHealth(100); <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/topic/130848/komisches-logikproblem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 17:12:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130848.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Dec 2005 05:20:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 05:23:18 GMT]]></title><description><![CDATA[<p>Hier mal Code:</p>
<p>main.cpp</p>
<pre><code class="language-cpp">//***INCLUDES***//
#include &quot;main.h&quot;
#include &lt;iostream.h&gt;

//***MAIN FUNCTION***//
void main()
{
	Player player;
	Healpotion healpotion;

	cout &lt;&lt; &quot;Leben: &quot; &lt;&lt; player.health_min &lt;&lt; &quot;/&quot; &lt;&lt; player.health_max &lt;&lt; endl;
	healpotion.use();
	cout &lt;&lt; &quot;Leben nach Heiltrank: &quot; &lt;&lt; player.health_min &lt;&lt; &quot;/&quot; &lt;&lt; player.health_max &lt;&lt; endl;
}
</code></pre>
<p>main.h</p>
<pre><code class="language-cpp">#ifndef _MAIN_H_
#define _MAIN_H_

//***INCLUDES***//
#include &quot;player.h&quot;
#include &quot;items.h&quot;

//***VARIABLES, FLAGS &amp; CO.***//

#endif
</code></pre>
<p>player.cpp</p>
<pre><code class="language-cpp">//***INCLUDES***//
#include &quot;player.h&quot;

//***PLAYER-CLASS***//
Player::Player()
{
	health_min = 400;
	health_max = 500;
}
void Player::addHealth(signed long value)
{
	health_min += value;
}
</code></pre>
<p>player.h</p>
<pre><code class="language-cpp">#ifndef _PLAYER_H_
#define _PLAYER_H_

//***CLASS PLAYER***//
class Player
{
public:
	Player();

	signed long health_min;
	signed long health_max;

	void addHealth(signed long);
};

#endif
</code></pre>
<p>items.cpp</p>
<pre><code class="language-cpp">//***INCLUDES***//
#include &quot;items.h&quot;
#include &quot;player.h&quot;
#include &lt;iostream.h&gt;

//***ITEM-CLASSES***//
void Healpotion::use()
{
	Player player;
         player.addHealth(100);
	cout &lt;&lt; &quot;Added life!&quot; &lt;&lt; endl;
}
</code></pre>
<p>items.h</p>
<pre><code class="language-cpp">#ifndef _ITEMS_H_
#define _ITEMS_H_

//***CLASS PLAYER***//
class Healpotion
{
public:
	void use();
};

#endif
</code></pre>
<p>Nachdem ich healpotion.use() ausgeführt habe, hat health_min immer noch denselben Wert! Dabei sollte dieser um 100 erhöht werden.<br />
Warum passiert das nicht? Die Funktion wird aber durchgelaufen, habe ich getestet!</p>
<p>Wenn ich allerdings statt healpotion.use() lieber player.addHealth(100); schreibe, funktionierts!</p>
<p>Dabei macht healpotion.use() nichts Anderes als player.addHealth(100); <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/951242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951242</guid><dc:creator><![CDATA[Aedyn]]></dc:creator><pubDate>Wed, 28 Dec 2005 05:23:18 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 06:43:52 GMT]]></title><description><![CDATA[<p>hab zwar kaum ahnung von c++ aber so wies aussieht erzeugst du in Helpopton#use() ein neue Player instanz, die natürlich eine ander ist als die instanz in deinem hauptprog.<br />
lösung: übergib der methode use() die instanz von Player und benutze diese, also ungefähr so:</p>
<pre><code class="language-cpp">void use(Player)

void Healpotion::use(Player player)
{
         player.addHealth(100);
    cout &lt;&lt; &quot;Added life!&quot; &lt;&lt; endl;
}

healpotion.use(player);
</code></pre>
<p>oder so ähnlich :xmas1:<br />
vielleicht musst du auch mit pointern um dich werfen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
aber vom prinzip stimmts :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951250</guid><dc:creator><![CDATA[Roar]]></dc:creator><pubDate>Wed, 28 Dec 2005 06:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 08:10:56 GMT]]></title><description><![CDATA[<p>Jo, du musst natürlich den Player benutzen, der dich interessiert:</p>
<pre><code class="language-cpp">void Healpotion::use(Player &amp; player)
{
    player.addHealth(100);
    cout &lt;&lt; &quot;Added life!&quot; &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/951260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951260</guid><dc:creator><![CDATA[Ponto]]></dc:creator><pubDate>Wed, 28 Dec 2005 08:10:56 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 10:17:02 GMT]]></title><description><![CDATA[<p>Wofür mach ich mir im anderen Thread die Mühe und zeige dir wie es geht, wenn du es dann doch nicht beachtest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951305</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Wed, 28 Dec 2005 10:17:02 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 10:59:19 GMT]]></title><description><![CDATA[<p>Weil ich es noch nicht richtig verstehe, und erst einmal mit Projekt-Management klar kommen will!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951338</guid><dc:creator><![CDATA[Aedyn]]></dc:creator><pubDate>Wed, 28 Dec 2005 10:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 11:35:50 GMT]]></title><description><![CDATA[<p>bei</p>
<pre><code class="language-cpp">void Healpotion::use()
{
    Player player;
         player.addHealth(100);
    cout &lt;&lt; &quot;Added life!&quot; &lt;&lt; endl;
}
</code></pre>
<p>Erstellst du doch einen ganz neuen Player, der wieso nach use() wieder gelöscht wird. Du musst es so wie Ponto machen.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951375</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 11:35:50 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 14:55:20 GMT]]></title><description><![CDATA[<p>Gut, nun funktioniert es und ich verstehe es auch einigermaßen.<br />
Eine Frage noch. Ich erstelle für beinahe jede Klasse eine &quot;.h&quot; und eine &quot;.cpp&quot;.<br />
Wenn nun eine Klasse auf die andere zugreifen will, komme ich um #include nicht herum, oder?</p>
<p>Heißt das, ich kann beliebig oft inkludieren, sofern ich den &quot;Wächter&quot; schreibe? (#ifndef -&gt; #define , #endif)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951500</guid><dc:creator><![CDATA[Aedyn]]></dc:creator><pubDate>Wed, 28 Dec 2005 14:55:20 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 15:03:07 GMT]]></title><description><![CDATA[<p>Sicher kannst du beliebig oft inkludieren.</p>
<p>Dabei habe ich noch eine Frage:<br />
ist</p>
<pre><code class="language-cpp">#pragma once
</code></pre>
<p>Microsoft- oder Standard c++ ?</p>
<p>Das finde ich nämlich hübscher.<br />
In Headern muss man eher selten ein Include schreiben. Da ist eine forward-declaration die bessere wahl. Das geht nur wenn du Referenzen oder Pointer auf andere objekte Benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951505</guid><dc:creator><![CDATA[templäd]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:03:07 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Logikproblem on Wed, 28 Dec 2005 15:09:11 GMT]]></title><description><![CDATA[<p>templäd schrieb:</p>
<blockquote>
<p>Sicher kannst du beliebig oft inkludieren.</p>
<p>Dabei habe ich noch eine Frage:<br />
ist</p>
<pre><code class="language-cpp">#pragma once
</code></pre>
<p>Microsoft- oder Standard c++ ?</p>
<p>Das finde ich nämlich hübscher.<br />
In Headern muss man eher selten ein Include schreiben. Da ist eine forward-declaration die bessere wahl. Das geht nur wenn du Referenzen oder Pointer auf andere objekte Benutzt.</p>
</blockquote>
<p>MinGW unterstützt das auch, also ist es nicht nur bei Microsoft Compiliern.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/951509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/951509</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Wed, 28 Dec 2005 15:09:11 GMT</pubDate></item></channel></rss>