<?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[Variable in Klassen]]></title><description><![CDATA[<p>Hallo !<br />
Ich suche ein (Programmier- ) Beispiel, wie ich in zwei Klassen eine einzige Variable nutzen kann.<br />
Dabei möchte ich die Variable in einer Klasse definieren, diese aber in beiden Klassen veränderbar machen.</p>
<p>Ich habe schon ein paar Variation in C++ ausprobiert, allerdings ohne nennenswerten Erfolg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f622.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--crying_face"
      title=";-("
      alt="😢"
    /></p>
<p>Es wäre nett, wenn mir einer von Euch kurz auf die Sprünge helfen könnte!<br />
Danke!</p>
<p>Gruss Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183392/variable-in-klassen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 06:09:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183392.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Jun 2007 15:01:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable in Klassen on Mon, 04 Jun 2007 15:01:58 GMT]]></title><description><![CDATA[<p>Hallo !<br />
Ich suche ein (Programmier- ) Beispiel, wie ich in zwei Klassen eine einzige Variable nutzen kann.<br />
Dabei möchte ich die Variable in einer Klasse definieren, diese aber in beiden Klassen veränderbar machen.</p>
<p>Ich habe schon ein paar Variation in C++ ausprobiert, allerdings ohne nennenswerten Erfolg <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f622.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--crying_face"
      title=";-("
      alt="😢"
    /></p>
<p>Es wäre nett, wenn mir einer von Euch kurz auf die Sprünge helfen könnte!<br />
Danke!</p>
<p>Gruss Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298635</guid><dc:creator><![CDATA[Martin Reindel]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:01:58 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Mon, 04 Jun 2007 15:04:26 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Du kannst friend benutzen.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298639</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:04:26 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Mon, 04 Jun 2007 15:36:08 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Du kannst einer eine Referenz oder einen Zeiger verpassen:</p>
<pre><code class="language-cpp">struct A {
   int i;
};

// Referenz-Version
struct B {
   int&amp; i;
   B(A&amp; a) : i(a.i) {} // falls immer ein B mit einem A verküpft werden soll
   B(int&amp; x) : i(x) {} // falls ein B mit irgendeinem i verküpft werden soll
};

// Zeiger-Version
struct C {
   int* i;
   C() : i(0) {}
   C(A&amp; a) : i(&amp;a.i) {} 
   C(int* x) : i(x) {}
   void connectTo(int* x) { i=x; }
   void connectTo(A&amp; a) { i=&amp;a.i; }
};
</code></pre>
<p>Die erste Variante (B) verknüpft &quot;stärker&quot;, die Zweitere (C) schwächer; je nachdem, was man braucht.<br />
Mit solchen &quot;Querabhängigkeiten&quot; muss man aber vorsichtig sein, weil man schnell zu unerwünschtem Verhalten kommt (beide Klassen arbeiten tadellos, erst im Zusammenspiel geht's schief).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298650</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:36:08 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Mon, 04 Jun 2007 15:37:01 GMT]]></title><description><![CDATA[<p>Ok...das muss ich erst mal verdauen..!<br />
Bin noch kein C++ Fachmann, aber ich arbeite dran !</p>
<p>Gruss Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1298666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1298666</guid><dc:creator><![CDATA[Martin Reindel]]></dc:creator><pubDate>Mon, 04 Jun 2007 15:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Tue, 05 Jun 2007 09:48:08 GMT]]></title><description><![CDATA[<p>Hat jemand noch ein anderes Beispiel, wie ich eine Variable in zwei Klassen nutzen kann? Irgenwie steig ich da nicht so ganz durch bzw. für meine Anwendung finde ich dieser Art der Programmierung etwas zu komplex...</p>
<p>Gruss Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299142</guid><dc:creator><![CDATA[Martin Reindel]]></dc:creator><pubDate>Tue, 05 Jun 2007 09:48:08 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Tue, 05 Jun 2007 09:57:13 GMT]]></title><description><![CDATA[<p>Das Stichwort &quot;friend&quot; wurde ja schon genannt...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Friend;

class Test
{
public:
	Test(int i = 0) : n(i) {}
	void SetN(int i) {n = i;}
	int GetN() {return n;}
	friend Friend;

private:
	int n;
};

class Friend
{
public:
	Friend() {}
	void DoIt(Test &amp;test, int i) {test.n = i;}
};

using namespace std;

int main()
{
	Test t(5);
	Friend f;
	f.DoIt(t, 7);
	cout &lt;&lt; t.GetN() &lt;&lt; endl;

	cin.get();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1299146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299146</guid><dc:creator><![CDATA[~Airdamn]]></dc:creator><pubDate>Tue, 05 Jun 2007 09:57:13 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Tue, 05 Jun 2007 11:36:20 GMT]]></title><description><![CDATA[<p>Hallo !<br />
Sobald ich den Quelltext kompiliere bekomme ich die folgende Fehlermeldung:</p>
<p>friend declaration requires class-key, i.e. `friend struct Friend'</p>
<p>Wie kann das ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299211</guid><dc:creator><![CDATA[Martin Reindel]]></dc:creator><pubDate>Tue, 05 Jun 2007 11:36:20 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Tue, 05 Jun 2007 11:40:56 GMT]]></title><description><![CDATA[<p>Du mußt ja auch</p>
<pre><code class="language-cpp">friend class Friend;
</code></pre>
<p>schreiben. das besagt ja auch die Fehlermeldung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299214</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 05 Jun 2007 11:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Tue, 05 Jun 2007 11:45:01 GMT]]></title><description><![CDATA[<p>Sorry, habe ich auch gerade gemerkt...<br />
Dummer Fehler !!</p>
<p>Wer lesen kann, ist klar im Vorteil...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299217</guid><dc:creator><![CDATA[Martin Reindel]]></dc:creator><pubDate>Tue, 05 Jun 2007 11:45:01 GMT</pubDate></item><item><title><![CDATA[Reply to Variable in Klassen on Tue, 05 Jun 2007 12:19:08 GMT]]></title><description><![CDATA[<p>~Airdamn schrieb:</p>
<blockquote>
<p>Das Stichwort &quot;friend&quot; wurde ja schon genannt...<br />
...</p>
</blockquote>
<p>Ich glaube nicht, dass er das meint/braucht !</p>
<p>Wenn der OP noch nicht verstanden hat, wie man 2 Objekte verknüpft, ist deren Zugriffsschutz (und um mehr kümert sich friend ja nicht) erstmal egal.<br />
Anders gesagt: Auch mit &quot;friend&quot; kommt er nicht umhin, sich eine Referenz oder einen Pointer zu halten....(oder eben die Indirektion über eine Funktion verstehen, wie Du sie implementiert hast)</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/35992">@Martin</a>: Ich versuche mal, mein Beispiel (die einfachere Version davon) zu erläutern:</p>
<pre><code class="language-cpp">struct A {
   int i; // Klasse &quot;besitzt&quot; eine Zahl
};

struct B {
   int&amp; i; // Klasse &quot;besitzt&quot; eine &quot;Referenz (=Verweis) auf eine Zahl
   B(int&amp; x) : i(x) {}
};

int main() {
   A a; // ein A-Objekt
   B b(a.i); // ein B-Objekt, dessen int-Referenz an die Zahl von a gebunden wird

   a.i = 1;
   cout &lt;&lt; &quot;a.i = &quot; &lt;&lt; a.i &lt;&lt; &quot;, b.i = &quot; &lt;&lt; b.i &lt;&lt; &quot;\n&quot;;
   b.i = 2;
   cout &lt;&lt; &quot;a.i = &quot; &lt;&lt; a.i &lt;&lt; &quot;, b.i = &quot; &lt;&lt; b.i &lt;&lt; &quot;\n&quot;;

   // Wie Du siehst, werden immer beide gleichzeitig verändert.
   return 0;
}
</code></pre>
<p>Wenn Du da durchgestiegen bist, können wir das nochmal mit Zeiger und &quot;Funktionsumleitung&quot; durchgehen.</p>
<p>Martin Reindel schrieb:</p>
<blockquote>
<p>...<br />
Ich habe schon ein paar Variation in C++ ausprobiert, allerdings ohne nennenswerten Erfolg ;-(...</p>
</blockquote>
<p>Vielleicht kannst Du mal einen Versuch hier veröffentlichen und sagen, was daran &quot;erfolglos&quot; war ... sonst raten wir hier noch ewig rum, was Du eigentlich willst, wie Du es bislang versucht hast und was daran nicht klappte.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299230</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 05 Jun 2007 12:19:08 GMT</pubDate></item></channel></rss>