<?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[Problem bei Klassen und deren Methoden.]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Derzeit versuche ich ein kleines Textbasiertes RPG zu Programmieren, und hab da mal ne Frage wie ich folgendes Problem programmieren kann:</p>
<p>Ich habe eine Klasse &quot;player&quot; in &quot;player.h&quot;. Deren Methoden sind in &quot;player.cpp&quot;.<br />
Die Klasse hat die Attribute &quot;def&quot; &quot;atkpower&quot; und &quot;health&quot;. Jetzt möchte ich eine Methode erstellen die aus einer anderen Klasse einen Wert nimmt und diesen drei Attributen den Wert hinzu addiert. Die andere Klasse &quot;klassen&quot; in &quot;klassen.h&quot; hat die Attribute &quot;def_up&quot;, &quot;atk_up&quot; und &quot;health_up&quot;. Im &quot;main.cpp&quot; sind 4 Objekte von der klasse &quot;klassen&quot; deklariert. Je nachdem welche Klasse der Spieler jetzt am Anfang gewählt hat, sollen sich die drei Werte &quot;def&quot;, &quot;atkpower&quot; und &quot;health&quot; unterschiedlich ändern (Abhängig von den drei Attributen der Klasse &quot;Klassen&quot;).</p>
<p>Ich hab schon einige Tage rumprobiert, aber keine Lösung dafür gefunden. Ich bin noch ein recht Blutiger Anfänger in Programmieren, da wir in der Berufsschule in dem Fach nur schleichend voran kommen -.-'</p>
<p>Ich bedanke mich schonmal für die Hilfe die ich hoffentlich bekommen werde <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>Mit freundlichen Grüßen,<br />
**Danielowksi<br />
**</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/308106/problem-bei-klassen-und-deren-methoden</link><generator>RSS for Node</generator><lastBuildDate>Thu, 06 Aug 2026 02:03:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/308106.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Sep 2012 17:49:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Fri, 14 Sep 2012 17:49:51 GMT]]></title><description><![CDATA[<p>Hallo Leute!</p>
<p>Derzeit versuche ich ein kleines Textbasiertes RPG zu Programmieren, und hab da mal ne Frage wie ich folgendes Problem programmieren kann:</p>
<p>Ich habe eine Klasse &quot;player&quot; in &quot;player.h&quot;. Deren Methoden sind in &quot;player.cpp&quot;.<br />
Die Klasse hat die Attribute &quot;def&quot; &quot;atkpower&quot; und &quot;health&quot;. Jetzt möchte ich eine Methode erstellen die aus einer anderen Klasse einen Wert nimmt und diesen drei Attributen den Wert hinzu addiert. Die andere Klasse &quot;klassen&quot; in &quot;klassen.h&quot; hat die Attribute &quot;def_up&quot;, &quot;atk_up&quot; und &quot;health_up&quot;. Im &quot;main.cpp&quot; sind 4 Objekte von der klasse &quot;klassen&quot; deklariert. Je nachdem welche Klasse der Spieler jetzt am Anfang gewählt hat, sollen sich die drei Werte &quot;def&quot;, &quot;atkpower&quot; und &quot;health&quot; unterschiedlich ändern (Abhängig von den drei Attributen der Klasse &quot;Klassen&quot;).</p>
<p>Ich hab schon einige Tage rumprobiert, aber keine Lösung dafür gefunden. Ich bin noch ein recht Blutiger Anfänger in Programmieren, da wir in der Berufsschule in dem Fach nur schleichend voran kommen -.-'</p>
<p>Ich bedanke mich schonmal für die Hilfe die ich hoffentlich bekommen werde <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>Mit freundlichen Grüßen,<br />
**Danielowksi<br />
**</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251299</guid><dc:creator><![CDATA[Danielowski]]></dc:creator><pubDate>Fri, 14 Sep 2012 17:49:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Fri, 14 Sep 2012 18:02:11 GMT]]></title><description><![CDATA[<p>Kansnt du ein gekürztes, kompilierbares Beispiel machen und es dann posten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251301</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 14 Sep 2012 18:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Fri, 14 Sep 2012 19:48:04 GMT]]></title><description><![CDATA[<p>Ich vermute mal, du bringst in deinem Text Klassen und Objekte durcheinander.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251330</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Fri, 14 Sep 2012 19:48:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Fri, 14 Sep 2012 20:08:19 GMT]]></title><description><![CDATA[<p>Naja, was er meint ist wohl schon klar. Läuft im Endeffekt auf getter und setter hinaus. Unschön.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251337</guid><dc:creator><![CDATA[asasas]]></dc:creator><pubDate>Fri, 14 Sep 2012 20:08:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Fri, 14 Sep 2012 21:08:27 GMT]]></title><description><![CDATA[<p>Ich hab dann mal etwas ausgeschnitten, ich hoffe das reicht so. Also:</p>
<p><strong>main.cpp:</strong></p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &quot;player.h&quot;
#include &quot;klassen.h&quot;

//Ich hab keine Ahnung was diese Zeile macht :D
using namespace std;

int main(int argc, char *argv[])
{
    //Spieler 1 initialisierung
    player spieler[2];
    spieler[1].change_health(100);
    spieler[1].change_def(10);
    spieler[1].change_atkpower(20);

    //Klasse 1 initialisierung
    klassen klasse[2];
    klasse[1].id = 1;
    klasse[1].atk_change = 5;
    klasse[1].def_change = 10;
    klasse[1].hp_change = 7;

    //ende
    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p><strong>klassen.h:</strong></p>
<pre><code class="language-cpp">class klassen
{
      public:
          int id;
          //xx_change Attribute sollen als Prozentuale erhöhung von 
          //den dafür vorgsehenen Attributen aus &quot;player&quot; dienen.
          int atk_change;
          int def_change;
          int hp_change;
};
</code></pre>
<p><strong>player.h:</strong></p>
<pre><code class="language-cpp">class player
{
      public:
          //Zugriffs Methoden
          void change_health(int amount);
          void change_def(int amount);
          void change_atkpower(int amount);
      private:
          int health;
          int def;
          int atkpower;
};
</code></pre>
<p><strong>player.cpp</strong></p>
<pre><code class="language-cpp">#include &quot;player.h&quot;

void player::change_health(int amount)
{
     health = health + amount;
}

void player::change_def(int amount)
{
     def = def + amount;
}

void player::change_atkpower(int amount)
{
     atkpower = atkpower + amount;
}
</code></pre>
<p>Mit freundlichen Grüßen,<br />
Danielowski</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251349</guid><dc:creator><![CDATA[Danielowski]]></dc:creator><pubDate>Fri, 14 Sep 2012 21:08:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Sun, 16 Sep 2012 19:34:02 GMT]]></title><description><![CDATA[<p>Kann mir da keiner helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251717</guid><dc:creator><![CDATA[Danielowski]]></dc:creator><pubDate>Sun, 16 Sep 2012 19:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Sun, 16 Sep 2012 19:36:28 GMT]]></title><description><![CDATA[<p>Wo liegt denn dein Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251718</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Sun, 16 Sep 2012 19:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Mon, 17 Sep 2012 03:03:17 GMT]]></title><description><![CDATA[<p>using namespace std; macht nichts anderes, als dass du nicht vor die Standardfunktionen immer std:: schreiben musst. Außerdem fängt der Arrayindex bei 0 an! Bist du sicher, dass du die Grundlagen von C++ beherrscht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251751</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Mon, 17 Sep 2012 03:03:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Mon, 17 Sep 2012 08:21:06 GMT]]></title><description><![CDATA[<p>Lies dir (neben einem ordentlichen Einsteigerbuch für C++) auch mal die beiden Links in meiner Signatur durch - und formuliere dann eine Frage. Die einzige wirkliche Frage, die man bisher von dir hier findet heißt &quot;kann mir keiner helfen?&quot; - die Antwort ist &quot;Nein, weil keiner weiß, bei welchem Problem&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251785</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 17 Sep 2012 08:21:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Mon, 17 Sep 2012 13:09:05 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>using namespace std; macht nichts anderes, als dass du nicht vor die Standardfunktionen immer std:: schreiben musst. Außerdem fängt der Arrayindex bei 0 an! Bist du sicher, dass du die Grundlagen von C++ beherrscht?</p>
</blockquote>
<p>Es ist mir durchaus bewusst, das der Array Index bei 0 beginnt. Ich hab nur die &quot;id&quot; bei 1 begonnen, weil ich die 0 für eine Ausweich id freigehalten habe.</p>
<p>Ja, ich hab das Problem vielleicht etwas zu überladen dargestellt. Also:</p>
<p>Ich möchte eine Funktion programmieren, die für den player1 bei der wahl einer klasse, die stats den Werten entsprechend erhöht. Wenn jetzt &quot;klasse[1].healthchange&quot; = 0.2 ist und &quot;player[1].health&quot; = 100 ist soll dementsprechend der Wert 100 auf 120 gehoben werden.</p>
<p>Wenn man nur einen einzigen Spieler erzeugt ist das kein Problem, dann ist das ja relativ statisch. Aber wenn ich z.B. zwei Spieler erzeugen will, dann weiß ich nicht wie ich der Funktion sagen soll welchem Spieler die Änderung zugunsten kommen soll. Außerdem sollte es halt möglich sein die Klasse zu wechseln.</p>
<p>Ich hoffe dass das nicht wieder zu Schwammig formuliert ist.</p>
<p>Mit freundlichen Grüßen,<br />
<strong>Danielowski</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251927</guid><dc:creator><![CDATA[Danielowski]]></dc:creator><pubDate>Mon, 17 Sep 2012 13:09:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Mon, 17 Sep 2012 13:27:02 GMT]]></title><description><![CDATA[<p>Danielowski schrieb:</p>
<blockquote>
<p>Wenn man nur einen einzigen Spieler erzeugt ist das kein Problem, dann ist das ja relativ statisch. Aber wenn ich z.B. zwei Spieler erzeugen will, dann weiß ich nicht wie ich der Funktion sagen soll welchem Spieler die Änderung zugunsten kommen soll.</p>
</blockquote>
<p>Schau dir das Konzept von Methoden nochmal genauer an. Wenn du auf spieler[1] eine Funktion aufrufst, hat das einen anderen Effekt als wenn du die selbe Funktion auf spieler[2] aufrufst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251940</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 17 Sep 2012 13:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem bei Klassen und deren Methoden. on Mon, 17 Sep 2012 13:35:04 GMT]]></title><description><![CDATA[<p>Danielowski schrieb:</p>
<blockquote>
<p>Ich möchte eine Funktion programmieren, die für den player1 bei der wahl einer klasse, die stats den Werten entsprechend erhöht. Wenn jetzt &quot;klasse[1].healthchange&quot; = 0.2 ist und &quot;player[1].health&quot; = 100 ist soll dementsprechend der Wert 100 auf 120 gehoben werden.</p>
</blockquote>
<p>Dann solltest Du dazu eine Methode schreiben, in der man eine Klasse auswählen kann.</p>
<p>void select_klasse( class Klasse *pKlasse );</p>
<p>Du legst im Player einen privaten class Klasse *pKlasse an und belegst diesen beim Aufruf der Methode. Initialisieren kannst Du den Pointer mit NULL.</p>
<p>Danielowski schrieb:</p>
<blockquote>
<p>Wenn man nur einen einzigen Spieler erzeugt ist das kein Problem, dann ist das ja relativ statisch. Aber wenn ich z.B. zwei Spieler erzeugen will, dann weiß ich nicht wie ich der Funktion sagen soll welchem Spieler die Änderung zugunsten kommen soll. Außerdem sollte es halt möglich sein die Klasse zu wechseln.</p>
</blockquote>
<p>Wenn Du diesen o.a. Pointer hast und der nicht NULL ist, dann kannst Du in den Methoden, die Dir Health, etc. liefern, die Werte dazu addieren. Ich empfehle, nicht den ursprünglichen Wert zu ändern, sondern in einer Methode eben den Wert immer aktuell zu berechenen.</p>
<p>Übrigens: 1000 Wege führen nach Rom. Zu Deinem Problem gibt es auch eine Reihe an Lösungen und das ist nicht unbedingt die Beste aber die, von der ich glaube, dass man am wenigsten erläutern muss... aber auch da könnte ich falsch liegen...</p>
<p>Ciao<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2251951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2251951</guid><dc:creator><![CDATA[Martiniclan]]></dc:creator><pubDate>Mon, 17 Sep 2012 13:35:04 GMT</pubDate></item></channel></rss>