<?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[eine Variable einer Klasse ändern]]></title><description><![CDATA[<p>Hallo,</p>
<p>da ich totaler Anfänger bin und gerade meine ersten selbstständigen schritte in C++ mache...<br />
Ein Black Jack auf der Konsole läuft schon einwandfrei <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 />
Nur leider war dort alles in der main zusammen &quot;geklatscht&quot;</p>
<p>So nun wollt ich mich mal an ein Pokerspiel(Texas Holdem)versuchen!<br />
Nur was mir Probleme bereitet... ist die sache mit den klassen und dateien...</p>
<p>Ich dachte mir das so: eine Klasse Dealer,Spieler,NPC1,NPC2 und vllt noch Kartenstapel</p>
<p>wenn nun Dealer die Funktion Kartenausteilen macht kann ich die Variable von Spieler nicht verändern.</p>
<pre><code class="language-cpp">void  Dealer::kartenausteilen( )
{
	Spieler::eigenekarten = Spieler::eigenekarten + 1;

}
</code></pre>
<p>1&gt;------ Erstellen gestartet: Projekt: Poker_Texas_Holdem, Konfiguration: Debug Win32 ------<br />
1&gt; Spieler.cpp<br />
1&gt;c:\users\<em><strong>\documents\visual studio 2010\projects\_poker_texas_holdem\poker_texas_holdem\spieler.cpp(5): error C2597: Ungültiger Verweis auf nicht-statischen Member 'Spieler::eigenekarten'<br />
1&gt; Dealer.cpp<br />
1&gt;c:\users\</strong></em>_\documents\visual studio 2010\projects\_poker_texas_holdem\poker_texas_holdem\dealer.cpp(6): error C2597: Ungültiger Verweis auf nicht-statischen Member 'Spieler::eigenekarten'<br />
1&gt; Code wird generiert...<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Wenn ich da static vor int eigenekartenschreibe kommt das:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: Poker_Texas_Holdem, Konfiguration: Debug Win32 ------<br />
1&gt;Dealer.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: static int Spieler::eigenekarten&quot; (?eigenekarten@Spieler@@2HA)&quot;.<br />
1&gt;main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: static int Spieler::eigenekarten&quot; (?eigenekarten@Spieler@@2HA)&quot;.<br />
1&gt;Spieler.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: static int Spieler::eigenekarten&quot; (?eigenekarten@Spieler@@2HA)&quot;.<br />
1&gt;C:\Users\____\documents\visual studio 2010\Projects\_Poker_Texas_Holdem\Debug\Poker_Texas_Holdem.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Also wie kann eine Funktion von Klasse A die Variablen von Klasse B verändern?<br />
Oder geht das gar nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302764/eine-variable-einer-klasse-ändern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 03:12:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302764.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Apr 2012 15:40:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to eine Variable einer Klasse ändern on Thu, 26 Apr 2012 15:40:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>da ich totaler Anfänger bin und gerade meine ersten selbstständigen schritte in C++ mache...<br />
Ein Black Jack auf der Konsole läuft schon einwandfrei <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 />
Nur leider war dort alles in der main zusammen &quot;geklatscht&quot;</p>
<p>So nun wollt ich mich mal an ein Pokerspiel(Texas Holdem)versuchen!<br />
Nur was mir Probleme bereitet... ist die sache mit den klassen und dateien...</p>
<p>Ich dachte mir das so: eine Klasse Dealer,Spieler,NPC1,NPC2 und vllt noch Kartenstapel</p>
<p>wenn nun Dealer die Funktion Kartenausteilen macht kann ich die Variable von Spieler nicht verändern.</p>
<pre><code class="language-cpp">void  Dealer::kartenausteilen( )
{
	Spieler::eigenekarten = Spieler::eigenekarten + 1;

}
</code></pre>
<p>1&gt;------ Erstellen gestartet: Projekt: Poker_Texas_Holdem, Konfiguration: Debug Win32 ------<br />
1&gt; Spieler.cpp<br />
1&gt;c:\users\<em><strong>\documents\visual studio 2010\projects\_poker_texas_holdem\poker_texas_holdem\spieler.cpp(5): error C2597: Ungültiger Verweis auf nicht-statischen Member 'Spieler::eigenekarten'<br />
1&gt; Dealer.cpp<br />
1&gt;c:\users\</strong></em>_\documents\visual studio 2010\projects\_poker_texas_holdem\poker_texas_holdem\dealer.cpp(6): error C2597: Ungültiger Verweis auf nicht-statischen Member 'Spieler::eigenekarten'<br />
1&gt; Code wird generiert...<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Wenn ich da static vor int eigenekartenschreibe kommt das:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: Poker_Texas_Holdem, Konfiguration: Debug Win32 ------<br />
1&gt;Dealer.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: static int Spieler::eigenekarten&quot; (?eigenekarten@Spieler@@2HA)&quot;.<br />
1&gt;main.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: static int Spieler::eigenekarten&quot; (?eigenekarten@Spieler@@2HA)&quot;.<br />
1&gt;Spieler.obj : error LNK2001: Nicht aufgelöstes externes Symbol &quot;&quot;public: static int Spieler::eigenekarten&quot; (?eigenekarten@Spieler@@2HA)&quot;.<br />
1&gt;C:\Users\____\documents\visual studio 2010\Projects\_Poker_Texas_Holdem\Debug\Poker_Texas_Holdem.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.<br />
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Also wie kann eine Funktion von Klasse A die Variablen von Klasse B verändern?<br />
Oder geht das gar nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205844</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205844</guid><dc:creator><![CDATA[XY213]]></dc:creator><pubDate>Thu, 26 Apr 2012 15:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to eine Variable einer Klasse ändern on Thu, 26 Apr 2012 15:46:40 GMT]]></title><description><![CDATA[<p>XY213 schrieb:</p>
<blockquote>
<p>Also wie kann eine Funktion von Klasse A die Variablen von Klasse B verändern?<br />
Oder geht das gar nicht?</p>
</blockquote>
<p>Mein professioneller Ratschlag: Hol dir ein Buch über C++. Ein vernünftiges.</p>
<p>Ich bin mir verdammt sicher, dass eigeneKarten</p>
<p>1. Ein Zähler ist; Nenne es doch <code>AnzahlEigeneKarten</code> oder mach gleich eine eigene Klasse <code>Karten</code> , die dann einen <code>std::vector</code> usw. enthält.<br />
2. als <code>private</code> in <code>Spieler</code> deklariert, <strong>was eigentlich dein Problem ist.</strong></p>
<p>Schlechter Stil wäre es jetzt, AnzahlEigeneKarten (bzw. eigeneKarten) <code>public</code> zu machen, oder Klasse <code>B</code> bzw. <code>Dealer</code> als <code>friend</code> ; stattdessen mach einen setter (genügend Informationen hierzu findest du im Netz, aber hol dir lieber gleich ein gutes Buch) und getter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205847</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 26 Apr 2012 15:46:40 GMT</pubDate></item><item><title><![CDATA[Reply to eine Variable einer Klasse ändern on Thu, 26 Apr 2012 15:46:45 GMT]]></title><description><![CDATA[<p>Typischer Fehler von jemandem, der versucht in die objektorientierte Programmierung umzusteigen. Gerettet hat dich, dass du &quot;static&quot; offenbar nicht kennst, und deswegen hier fragen musst. Das da ist keine Objektorientierung, das ist Klassen als namespaces misbraucht:</p>
<pre><code class="language-cpp">class Spieler
{
public:
  static int x;
  static double foo();
};

class Dealer
{
public:
  static whaterver y;
  static float bar();
};
</code></pre>
<p>Statische Methoden ruft man nämlich mit :: auf. Aber das ist nicht was du willst. Du willst, dass jede Instanz der Klasse Spieler einen Spieler symbolisiert, und das gilt auch für deine anderen Klassen. Dann ruft man Methoden nämlich mit dem . auf.</p>
<pre><code class="language-cpp">class Spieler
{
  void foo()
  {}
};

int main()
{
  Spieler s;
  s.foo();
}
</code></pre>
<p>Allerdings solltest du da erst mal im Kleinen etwas ausprobieren, bevor du dein Pokerspiel machst. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2205848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205848</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 26 Apr 2012 15:46:45 GMT</pubDate></item><item><title><![CDATA[Reply to eine Variable einer Klasse ändern on Thu, 26 Apr 2012 16:21:53 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>Mein professioneller Ratschlag</p>
</blockquote>
<p>Ein Ratschlag von dir ist schon von vornherein nicht professionell.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205864</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 26 Apr 2012 16:21:53 GMT</pubDate></item><item><title><![CDATA[Reply to eine Variable einer Klasse ändern on Thu, 26 Apr 2012 16:54:47 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Hacker schrieb:</p>
<blockquote>
<p>Mein professioneller Ratschlag</p>
</blockquote>
<p>Ein Ratschlag von dir ist schon von vornherein nicht professionell.</p>
</blockquote>
<p>Ein flame von dir hat schon von vornherein keinen Sinn.<br />
Aber darin, dass er sich ein Buch holen soll, sollst du mir nicht widersprechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205873</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 26 Apr 2012 16:54:47 GMT</pubDate></item></channel></rss>