<?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[Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme?]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich (Neuling) versuche gerade ein Programm zu schreiben, welches eine Variable von mehreren Instanzen einer Klasse verändern soll.</p>
<p>In dem speziellen Fall möchte ich ein Programm schreiben, welches die folgende Aufgabenstellung lösen soll. Ein Raum, mehrere Türen, ein System detektiert die Leute die rein und rausgehen, so dass immer bekannt ist, wieviele Personen im Raum sind.</p>
<p>Leider bekomme ich das nur mit globalen Variablen hin. Meine Alternative zu den globalen Variablen findet ihr im Anhang, leider läuft das Programm nicht, es geht immer nur ein leeres cmd-Fenster auf und eine Meldung, ob ein Problembericht an Microsoft gesendet werden soll.</p>
<p>Ich glaube, mein Problem ist ganz einfach, dass ich so tue, als gäbe es keine Klasse, kenne aber auch keine Alternative (evtl. über Speicherreservierung mit new?).</p>
<p>Hoffe, ihr könnt mir helfen. PS. habe nur den für dieses Problem relevanten Teil reingepackt, die Auswahl mit Switch-Case habe ich aus Platzgründe hier wieder rausgenommen. Als Entwicklungsumgebung habe ich Visual C++ (Express Edition).</p>
<p>Gruß,<br />
Sanjo</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

//Klasse

class CTuerzaehler
{
   private:

   //Membervariablen oder Attribute

   int Zaehlerstand;
   int *pZaehlerstand;

   public:

   //Memberfunktionen oder Methoden

   CTuerzaehler()
   {
   Zaehlerstand = 0;
   *pZaehlerstand = NULL;

   pZaehlerstand = &amp;Zaehlerstand;
   }
};

//Hauptprogramm

int main()
{
   CTuerzaehler Tuer1;

   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/268392/mehrere-instanzen-einer-klasse-greifen-auf-eine-variable-zu-probleme</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 20:18:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268392.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Jun 2010 16:02:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme? on Tue, 08 Jun 2010 16:02:20 GMT]]></title><description><![CDATA[<p>Hallo liebe Community,</p>
<p>ich (Neuling) versuche gerade ein Programm zu schreiben, welches eine Variable von mehreren Instanzen einer Klasse verändern soll.</p>
<p>In dem speziellen Fall möchte ich ein Programm schreiben, welches die folgende Aufgabenstellung lösen soll. Ein Raum, mehrere Türen, ein System detektiert die Leute die rein und rausgehen, so dass immer bekannt ist, wieviele Personen im Raum sind.</p>
<p>Leider bekomme ich das nur mit globalen Variablen hin. Meine Alternative zu den globalen Variablen findet ihr im Anhang, leider läuft das Programm nicht, es geht immer nur ein leeres cmd-Fenster auf und eine Meldung, ob ein Problembericht an Microsoft gesendet werden soll.</p>
<p>Ich glaube, mein Problem ist ganz einfach, dass ich so tue, als gäbe es keine Klasse, kenne aber auch keine Alternative (evtl. über Speicherreservierung mit new?).</p>
<p>Hoffe, ihr könnt mir helfen. PS. habe nur den für dieses Problem relevanten Teil reingepackt, die Auswahl mit Switch-Case habe ich aus Platzgründe hier wieder rausgenommen. Als Entwicklungsumgebung habe ich Visual C++ (Express Edition).</p>
<p>Gruß,<br />
Sanjo</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

//Klasse

class CTuerzaehler
{
   private:

   //Membervariablen oder Attribute

   int Zaehlerstand;
   int *pZaehlerstand;

   public:

   //Memberfunktionen oder Methoden

   CTuerzaehler()
   {
   Zaehlerstand = 0;
   *pZaehlerstand = NULL;

   pZaehlerstand = &amp;Zaehlerstand;
   }
};

//Hauptprogramm

int main()
{
   CTuerzaehler Tuer1;

   return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1908994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1908994</guid><dc:creator><![CDATA[Sanjo386]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme? on Tue, 08 Jun 2010 16:07:54 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">*pZaehlerstand = NULL;
</code></pre>
<p>Ich glaube dass ist nicht was du machen möchtest. Der * ist hier Dereferenzoierungsopertaor. Du versuchst also NULL dahinzuschreiben wo der<br />
Zeiger <code>pZaehlerstand</code> hinzeigt, und das ist (N)Irgendwo.<br />
Ich denke die Zeile macht überhautp keinen Sinn und kann weg. Außerdem hat wahrscheinlich auch <code>pZaehlerstand</code> überhaupt keinen Sinn oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909000</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:07:54 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme? on Tue, 08 Jun 2010 16:12:40 GMT]]></title><description><![CDATA[<p>So wie ich es verstanden habe, brauchst du eine Variable, die immer die<br />
Gesamtanzahl der im Raum befindlichen Personen beinhaltet?</p>
<p>Sanjo386 schrieb:</p>
<blockquote>
<p>welches eine Variable von mehreren Instanzen einer Klasse verändern soll</p>
</blockquote>
<p>Würde hier auch zu static tendieren. Viele Instanzen einer Klasse müssen<br />
auf einen Wert zugreifen, der für alle Instanzen gleich ist?</p>
<p>Also quasi ein</p>
<pre><code class="language-cpp">static int Zaehlerstand;
</code></pre>
<p>Den Pointer brauchst du dann nicht, wobei ich den Sinn dieses welchen eh nicht verstanden hab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Sanjo386 schrieb:</p>
<blockquote>
<p>ob ein Problembericht an Microsoft gesendet werden soll.</p>
</blockquote>
<p>Send ruhig, die freuen sich über Post <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909006</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:12:40 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme? on Tue, 08 Jun 2010 16:27:05 GMT]]></title><description><![CDATA[<p>Hui, das ging ja schnell, super!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9203">@brotbernd</a> &amp; BasicMan01:<br />
Was habe ich mir bei</p>
<pre><code class="language-cpp">*pZaehlerstand = NULL;
</code></pre>
<p>gedacht?<br />
Ich habe schonmal ein ähnliches Programm (Variable über Adresse geändert, aber ohne Klassen oder so) geschrieben. Da habe ich diese Zeile bei der Initialisierung verwendet, um den Pointer auf eine definierte Startadresse zeigen zu lassen, das sah dann ungefähr so aus:</p>
<pre><code class="language-cpp">int *pZaehlerstand = NULL;
</code></pre>
<p>.<br />
Also bei der Variablendeklaration. Da man bei Klassen Anfangswerte nur im Konstruktor angeben kann, dachte ich mir, vllt. klappts ja so.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5798">@Basicman01</a>:<br />
Die Variable wird dann also mit static im protected (oder Private) Teil deklariert, richtig?</p>
<p>Gruß,<br />
Sanjo386</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909017</guid><dc:creator><![CDATA[Sanjo386]]></dc:creator><pubDate>Tue, 08 Jun 2010 16:27:05 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme? on Tue, 08 Jun 2010 17:02:04 GMT]]></title><description><![CDATA[<p>ob du sie private, protected oder public machst, hängt von der weiteren Verwendung ab. Prinzipiell sollte man die Sichtbarkeiten klein halten.<br />
Also wenn du derzeit keine Vererbung benötigst, reicht private. Du kannst<br />
ja mit einem getter die Sachen dann zurückliefern lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909053</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Tue, 08 Jun 2010 17:02:04 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme? on Tue, 08 Jun 2010 18:17:00 GMT]]></title><description><![CDATA[<p>Sanjo386 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">*pZaehlerstand = NULL;
</code></pre>
</blockquote>
<p>Das ist der Grund, warum ich die Variante <code>Typ *name;</code> eigentlich nicht so mag und <code>Typ* name;</code> vorziehe. Das <code>NULL</code> bezieht sich auf <code>pZaehlerstand</code> und nicht auf <code>*pZaehlerstand</code> . Korrekt müssten es also heißen:</p>
<pre><code class="language-cpp">pZaehlerstand = NULL;
</code></pre>
<p>Damit du das gleiche Verhalten hast.</p>
<p>Ich glaube aber, dass du Zeiger noch nicht 100%-ig verstanden hast. Du solltest dir also diesbezüglich noch ein bisschen Literatur nahebringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909109</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Tue, 08 Jun 2010 18:17:00 GMT</pubDate></item><item><title><![CDATA[Reply to Mehrere Instanzen einer Klasse greifen auf eine Variable zu, Probleme? on Wed, 09 Jun 2010 13:36:35 GMT]]></title><description><![CDATA[<p>[quote=&quot;ipsec&quot;]</p>
<p>Sanjo386 schrieb:</p>
<blockquote>
<p>Korrekt müssten es also heißen:</p>
<pre><code class="language-cpp">pZaehlerstand = NULL;
</code></pre>
<p>Damit du das gleiche Verhalten hast.</p>
</blockquote>
<p>Ja, so hats geklappt, danke.<br />
Habs aber auch mit static probiert, das ist mir entfallen. Boah, das ist immer so schwer sich, alles zu merken, was man mal gelesen hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909489</guid><dc:creator><![CDATA[Sanjo386]]></dc:creator><pubDate>Wed, 09 Jun 2010 13:36:35 GMT</pubDate></item></channel></rss>