<?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[Klasse an Klasse übergeben]]></title><description><![CDATA[<p>Hallo miteinander,</p>
<p>ich hab grad ein bisschen ein &quot;Klassen-Problem&quot;.</p>
<p>Ich möchte das ganze an einem kleinen Beispiel erklären damit die Sache hoffentlich verständlich wird. Ist wohl keine großes Problem für Könner aber ich weiß nicht mal wo ich nach Antworten suchen soll weil ich keinen Anhaltspunkt habe.</p>
<p>So, Ich habe eine Klasse A</p>
<pre><code class="language-cpp">class A
{
private:
int i[10];
bool w[10];
};
</code></pre>
<p>Von dieser Klasse erzeuge ich NUR GENAU 1 Instanz .</p>
<pre><code class="language-cpp">A A1;
</code></pre>
<p>Die Klasse &quot;class A&quot; enthält auch nur Member (Nur die 2 Arrays). Methoden enthält Klasse A NICHT.</p>
<p>Jetzt gibt es aber noch eine Klasse B.</p>
<pre><code class="language-cpp">class B
{
private:
int i;
// Usw.

public
B();
bool Manip_2();
// Usw.

};
</code></pre>
<p>Von der Klasse B &quot;class B&quot; erzeuge ich mir 2 Instanzen ,</p>
<pre><code class="language-cpp">B B1, B2;
</code></pre>
<p>wobei jede Instanz unterschiedliche Members besitzt. ( Klasse B wird von einer anderen Klasse vererbt [B ist sozusagen ein Kind von QWidget aus der Qt-Klasse]...... Aber ich glaube das interessiert an dieser Stelle nicht.</p>
<p>Mein PROBLEM ist jetzt das die Methoden der Instanzen &quot;B1&quot; und &quot;B2&quot; teilweise auf Members der Instanz A1 zugreifen. Und so wie ich das bisher machte &quot;erkennen&quot; die Moethoden der Klasse B1 und B2 die Members der Instanz A1 nicht.<br />
Wie bekomme ich das hin? Gibt es da einen Trick? Das gibts doch nicht das sowas nicht möglich ist.... Ich steh auf dem Schlauch....<br />
Kann ich beiden Instanzen von B ( B1 und B2) eine Instanz der Klasse A (A1) übergeben sodass beide auf A1 zugreifen kann?</p>
<p>Für eine Antwort oder einem Stickwort womit ich Suchen kann wäre ich dankbar.</p>
<p>Mfg Casicas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274497/klasse-an-klasse-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 08:45:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274497.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Sep 2010 13:18:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 13:18:20 GMT]]></title><description><![CDATA[<p>Hallo miteinander,</p>
<p>ich hab grad ein bisschen ein &quot;Klassen-Problem&quot;.</p>
<p>Ich möchte das ganze an einem kleinen Beispiel erklären damit die Sache hoffentlich verständlich wird. Ist wohl keine großes Problem für Könner aber ich weiß nicht mal wo ich nach Antworten suchen soll weil ich keinen Anhaltspunkt habe.</p>
<p>So, Ich habe eine Klasse A</p>
<pre><code class="language-cpp">class A
{
private:
int i[10];
bool w[10];
};
</code></pre>
<p>Von dieser Klasse erzeuge ich NUR GENAU 1 Instanz .</p>
<pre><code class="language-cpp">A A1;
</code></pre>
<p>Die Klasse &quot;class A&quot; enthält auch nur Member (Nur die 2 Arrays). Methoden enthält Klasse A NICHT.</p>
<p>Jetzt gibt es aber noch eine Klasse B.</p>
<pre><code class="language-cpp">class B
{
private:
int i;
// Usw.

public
B();
bool Manip_2();
// Usw.

};
</code></pre>
<p>Von der Klasse B &quot;class B&quot; erzeuge ich mir 2 Instanzen ,</p>
<pre><code class="language-cpp">B B1, B2;
</code></pre>
<p>wobei jede Instanz unterschiedliche Members besitzt. ( Klasse B wird von einer anderen Klasse vererbt [B ist sozusagen ein Kind von QWidget aus der Qt-Klasse]...... Aber ich glaube das interessiert an dieser Stelle nicht.</p>
<p>Mein PROBLEM ist jetzt das die Methoden der Instanzen &quot;B1&quot; und &quot;B2&quot; teilweise auf Members der Instanz A1 zugreifen. Und so wie ich das bisher machte &quot;erkennen&quot; die Moethoden der Klasse B1 und B2 die Members der Instanz A1 nicht.<br />
Wie bekomme ich das hin? Gibt es da einen Trick? Das gibts doch nicht das sowas nicht möglich ist.... Ich steh auf dem Schlauch....<br />
Kann ich beiden Instanzen von B ( B1 und B2) eine Instanz der Klasse A (A1) übergeben sodass beide auf A1 zugreifen kann?</p>
<p>Für eine Antwort oder einem Stickwort womit ich Suchen kann wäre ich dankbar.</p>
<p>Mfg Casicas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958058</guid><dc:creator><![CDATA[Ishi131]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:18:20 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 13:28:38 GMT]]></title><description><![CDATA[<p>Du kannst Klasseninstanzen (also Objekte) so übergeben wie die primitiven Datentypen auch:</p>
<pre><code class="language-cpp">class A
{
 // Member von A
};

class B
{
public:
 bool Manip_2(A);
}; 

bool B::Manip_2(A a)
{
 // Mach irgendwas mit a. Natürlich kein Zugriff auf privates.
}

int main()
{
 A a1;
 B b1;
 b1.Manip_2(a1);
}
</code></pre>
<p>Ist es das was du meintest?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958062</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:28:38 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 13:43:12 GMT]]></title><description><![CDATA[<p>Hallo SeppJ,</p>
<p>wenn das so funktioniert dann JA.......<br />
Ich hätts halt schöner gefunden wenn man eine Klasse B erzeugt und ihr dann ein für allemal eine Instanz der Klasse A übergibt....<br />
Und nicht jeder Moethode einzeln..... Aber ok....</p>
<p>Sowas wär für mich geil....</p>
<pre><code class="language-cpp">class A
{
 // Members usw.
};
</code></pre>
<pre><code class="language-cpp">class B(A Instanz_1) // das ich die Instanz einer Klasse gleich bei der
{                    // Definition der Klasse übergebe.

public:
//Methoden usw.

};
</code></pre>
<p>Aber so mag der Kompiler irgendwie nicht.....<br />
Ok, ich werds probieren.....<br />
falls es noch was geschickteres gibt wär ich dankbar....</p>
<p>Ansonsten ists so auch gut....</p>
<p>Danke soweit</p>
<p>mfg Ishi131</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958075</guid><dc:creator><![CDATA[Ishi131]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:43:12 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 13:45:56 GMT]]></title><description><![CDATA[<p>Klar das kannst du auch machen. Gib der Klasse B eine Referenz oder einen Zeiger auf dein A Objekt. Und guck dir mal an, was ein Konstruktor ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958077</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:45:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 13:50:56 GMT]]></title><description><![CDATA[<p>ETA: damit das funzt müssen allerdings die Members von A public sein (oder du haust noch ein &quot;friend B;&quot; rein)</p>
<pre><code class="language-cpp">class B
{
public:
 A* m_A;
 B(A* a) : m_A(a);
private:
 B(); // nur damit keiner auf die Idee kommt ein B ohne den Verweis auf A zu instanziieren
bool Manip_2(){a-&gt;i[0]=5};
}
</code></pre>
<pre><code class="language-cpp">A* A1 = new A;
B B1(A1);
B B2(A1);
</code></pre>
<p>nichts chön, aber selten.... Problem ist wenn du A1 deletest und weiterhin versuchst mit B1, B2 zu arbeiten. Dann gibts Ärger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958078</guid><dc:creator><![CDATA[antialias]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 13:55:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für die schnelle Antwort.....<br />
Ich glaub wir sind der Sache schon ziemlich nahe....<br />
Mim Deleten wirds keine Probleme geben weil A1, B1 und B2 alle gleich lang &quot;leben&quot;.</p>
<p>Was ich jetzt noch fragen wollte ist ob du mir die eine Zeile erklären könntest.</p>
<pre><code class="language-cpp">B(A* a) : m_A(a);
</code></pre>
<p>Da versteh ich nicht was das bedeutet....<br />
Ich übergebe der Klasse B einen Pointer auf A....Das macht ja Sinn.... Aber das danach???</p>
<p>@ SeppJ:<br />
Ich weiß zwar was ein Konstruktor ist, aber wenn ich dem die Instanz A1 übergebe kennen die anderen Methoden von B die Instanz A1 immer noch nicht.</p>
<p>So hab ichs ja schon probiert....</p>
<p>Mfg Ishi1313</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958083</guid><dc:creator><![CDATA[Ishi1313]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:55:40 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 13:57:26 GMT]]></title><description><![CDATA[<p>antialias schrieb:</p>
<blockquote>
<p>ETA: damit das funzt müssen allerdings die Members von A public sein (oder du haust noch ein &quot;friend B;&quot; rein)</p>
<pre><code class="language-cpp">class B
{
public:
 A* m_A;
 B(A* a) : m_A(a);
private:
 B(); // nur damit keiner auf die Idee kommt ein B ohne den Verweis auf A zu instanziieren
bool Manip_2(){a-&gt;i[0]=5};
}
</code></pre>
<pre><code class="language-cpp">A* A1 = new A;
B B1(A1);
B B2(A1);
</code></pre>
<p>nichts chön, aber selten.... Problem ist wenn du A1 deletest und weiterhin versuchst mit B1, B2 zu arbeiten. Dann gibts Ärger.</p>
</blockquote>
<p>Oder er lässt die privat in A und erstellt Funktionen um die Daten zu manipulieren, über diese Schnittstelle kann dann B die Daten verändern.<br />
Bei vielen Funktionen wär dann aber vll doch eine friend Deklaration angebracht um die Daten direkt zu verändern.</p>
<p>Ist irgendwie sehr ähnlich <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 />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-274498.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-274498.html</a></p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958084</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Mon, 27 Sep 2010 13:57:26 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 14:01:32 GMT]]></title><description><![CDATA[<p>Ishi1313 schrieb:</p>
<blockquote>
<p>@ SeppJ:<br />
Ich weiß zwar was ein Konstruktor ist, aber wenn ich dem die Instanz A1 übergebe kennen die anderen Methoden von B die Instanz A1 immer noch nicht.</p>
</blockquote>
<p>Anscheinend weißt du nicht viel über Konstruktoren, sonst hättest du antialias geheimnisvolle Zeile als eben genau diesen erkannt. Sie macht auch genau das was ich beschrieben habe. Du solltest unbedingt noch mehr über solche Grundlagen lernen, bevor du so komplizierte Konstrukte bastelst.</p>
<p>Aber ich muss vorher noch sagen: Dein Design ist ganz schwerwiegend faul. Überdenke dies unbedingt. was du hier vor hast sind sehr ungewöhnliche Konstruktionen bei denen ganz ganz leicht schwer zu findende Fehler auftreten können (und werden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958086</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 27 Sep 2010 14:01:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 14:09:03 GMT]]></title><description><![CDATA[<blockquote>
<p>Was ich jetzt noch fragen wollte ist ob du mir die eine Zeile erklären könntest.</p>
<pre><code class="language-cpp">B(A* a) : m_A(a);
</code></pre>
<p>Da versteh ich nicht was das bedeutet....</p>
</blockquote>
<p>das ist ein Konstruktor (mit einem Parameter: dem Pointer auf ein Objekt von Typ A). Das hinter dem Dopplepunkt ist eine Initialisierungsliste. Der Membervariable m_A wird der Wert von a zugewiesen.</p>
<p>ist effektiv das selbe wie</p>
<pre><code class="language-cpp">B(A* a)
{m_A = a;}
</code></pre>
<p>Initialisierungslisten haben allerdings ein paar Vorteile was Performance angeht - aber ich glaube bei einer Initialisierung eines Pointers macht das keinen Unterschied (oder? weiss das jemand zufällig sicher?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958087</guid><dc:creator><![CDATA[antialias]]></dc:creator><pubDate>Mon, 27 Sep 2010 14:09:03 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 14:03:18 GMT]]></title><description><![CDATA[<p>antialias schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class B
{
public:
 A* m_A;
 B(A* a) : m_A(a);
private:
 B(); // nur damit keiner auf die Idee kommt ein B ohne
      // den Verweis auf A zu instanziieren
 bool Manip_2(){a-&gt;i[0]=5};
}
</code></pre>
</blockquote>
<p>Die Deklaration des Default-Konstruktors ist in diesem Fall überflüssig, wenn er sowieso nicht benutzt werden soll. Du hast ja schon B::B(A*) deklariert. Damit verhinderst Du schon die automatische Erzeugung eines Default-Konstruktors. Der Konstruktor B::B(A*) sollte vielleicht auch explizit sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958088</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 27 Sep 2010 14:03:18 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Mon, 27 Sep 2010 14:05:41 GMT]]></title><description><![CDATA[<p>Ok,</p>
<p>Danke soweit.....<br />
Ich werd jetzt erstmal darüber nachdenken..und ein Buch holen.... Gegebenenfalls meld ich mich nochmal...</p>
<p>Danke</p>
<p>Ishi131</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958089</guid><dc:creator><![CDATA[Ishi131]]></dc:creator><pubDate>Mon, 27 Sep 2010 14:05:41 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:11:49 GMT]]></title><description><![CDATA[<p>Hallo die Herrschaften,</p>
<p>hab das mir gestern nochmal gut angeschaut und (glaub ich) verstanden....</p>
<p>Jetzt ist die Sache das ihr schon recht habt.... Das ist nicht grad schön.....</p>
<p>Daher meine Frage:<br />
Wie kann man von einer Klasse 2 Instanzen erzeugen sodass sich die 2 Instanzen einige Members teilen, andere Members allerdings getrennt sind.</p>
<p>Gibts da was???</p>
<p>Was ich mir jetzt bisher gedacht habe wäre:</p>
<p>Ich mach mir ne Klasse A:</p>
<pre><code class="language-cpp">class A
{
public:
int i[5];
bool j[10];
};
</code></pre>
<p>dann ne Klasse B:</p>
<pre><code class="language-cpp">class B
{
private:
int i2[5];
bool j2[10];
public:
int i3[5];
bool j3[10];
void manipulate();
};
</code></pre>
<p>und schlussendlich ne Klasse C der mit der Zusammenfassung......</p>
<pre><code class="language-cpp">class C
{
private:
A Instanz_A;
public:
B Instanz_B1;
B Instanz_B2;
C(A* p_A, B* p_B1, B* p_B2)   // Konstrktor
void manipulate2();
};
</code></pre>
<p>Wäre das jetzt ein besserer Stil????</p>
<p>Man erzeugt sich ja ne Instanz der Klasse A ---&gt;nämlich A1<br />
Man erzeugt sich ja 2 Instanzen der Klasse B ---&gt;nämlich B1 &amp; B2;<br />
Diese 3 Instanzen übergibt man dann dem Konstruktor einer Instanz von Klasse C.<br />
Jetzt haben ja dann die Instanzen B1 und B2 sozusagen einen gleichen Speicher auf den sie zugreifen nämlich:</p>
<pre><code class="language-cpp">int i2[5];
bool j2[10];
</code></pre>
<p>und zusätzlich hat jede Instanz seinen eingenen privat &amp; public Speicher</p>
<pre><code class="language-cpp">int i2[5];
bool j2[10];
</code></pre>
<p>ist das so eine saubere Lösung???<br />
Oder gehts noch besser??</p>
<p>Mfg Ishi131</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958599</guid><dc:creator><![CDATA[Ishi131]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:11:49 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:23:00 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>kann es sein das sich mein Problem ganz einfach mit</p>
<pre><code class="language-cpp">class A{
static i[5];
static bool j[5];}
</code></pre>
<p>lösen läßt.......<br />
Sind dann für alle Instanzen von A die Werte im Array gleich????</p>
<p>Mfg.....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958602</guid><dc:creator><![CDATA[Ishi131]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:23:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:39:58 GMT]]></title><description><![CDATA[<p>Ja.</p>
<p>edit: Soweit jedenfalls die Bedeutung von static. Ob das wirklich ein gutes Design für dein Problem ist, ist eine andere Frage. Häufig deutet static nämlich eher auf nicht so gutes Design hin. Ganz besonders wenn alle Member static sind. Aber ich mag jetzt nicht 2 Seiten Thread durchlesen um deine Problemstellung zu suchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958609</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:39:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:39:52 GMT]]></title><description><![CDATA[<p>Dank dir Seppl.....</p>
<p>Hahahhahahaha. manchmal gehts ganz einfach...</p>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958611</guid><dc:creator><![CDATA[Ish131]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:39:52 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:40:45 GMT]]></title><description><![CDATA[<p>Ich habe oben noch was reineditiert, was du lesen solltest. Habe zu spät gesehen, dass du bereits geantwortet hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958612</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:40:45 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:40:56 GMT]]></title><description><![CDATA[<p>jetzt hasts editiert in der Zeit wo ich geschrieben hab.....</p>
<p>Wie soll ich es sonst machen????</p>
<p>So wie oben beschrieben????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958613</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958613</guid><dc:creator><![CDATA[Ishi...]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:43:57 GMT]]></title><description><![CDATA[<p>Ishi... schrieb:</p>
<blockquote>
<p>jetzt hasts editiert in der Zeit wo ich geschrieben hab.....</p>
<p>Wie soll ich es sonst machen????</p>
<p>So wie oben beschrieben????</p>
</blockquote>
<p>Schilder mal dein konkretes Problem (falls möglich), es gibt sicherlich eine elegantere Modellierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958614</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:43:57 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 15:54:51 GMT]]></title><description><![CDATA[<p>Ok,</p>
<p>als kleine Vorbemerkung benutz ich grad die Qt Klasse.........</p>
<p>also ich habe mir eine Klasse &quot;Bild&quot; gemacht/designed über die ich ein Bild laden kann.<br />
Wenn ich eine Instanz dieser Klasse erzeuge wird das Bild am Bildschirm angezeigt.</p>
<p>Ich erstelle mir genau 2 Instanzen dieser Klasse und lasse mir somit 2 Bilder nebeneinander anzeigen.</p>
<p>Die 2 Bilder sind FAST identisch. Sie unterscheiden sich aber in 5 Punkten.<br />
Aufgabe des Spielers ist, mit der Maus auf diese 5 Punkte zu klicken und somit die Fehler zu finden..... Dabei ist egal, auf welchem Bild er den Fehler anklickt.<br />
Wenn man einen Fehler findet und diesen anklickt, wird in der Klasse &quot;Bild&quot; das entsprechende bool Element auf &quot;true&quot; gesetzt was so viel bedeutet als das der Fehler gefunden wurde.</p>
<p>Wenn ich aber diese &quot;bool- Elemente&quot; in der &quot;Bild-Klasse&quot; habe, erzeugt er mir für jede Bild-Instanz soche &quot;bool-Elemente&quot; und dann hab ich auf einmal 10 Fehler anstatt bloß 5 weil er unterscheidet auf welchem Bild ich den Fehler gefunden habe.Und genau das will ich nicht...</p>
<p>Ich will das beide Bilder auf genau die gleichen bool Elemente zugreifen</p>
<p>Hoffe das war verstaendlich....</p>
<p>lg</p>
<p>Ishikura</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958617</guid><dc:creator><![CDATA[Ishi131]]></dc:creator><pubDate>Tue, 28 Sep 2010 15:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 16:10:36 GMT]]></title><description><![CDATA[<p>Du hast also 2 Bilder und 5 Fehler, welche quasi dein Spielfeld ausmachen. Lösung: Mach eine Klasse Spielfeld. Diese enthält 2 Bilder und 5 Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958624</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 28 Sep 2010 16:10:36 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Tue, 28 Sep 2010 16:15:22 GMT]]></title><description><![CDATA[<p>Jo, hab ich mir auch schon überlegt.....<br />
Aber dann hat das mit der Maus-Position ermitteln nicht mehr hin.....<br />
Das gilt ja dann fürs komplette Spielfeld und ich wills ja NUR für jedes Bild...<br />
Oder ich bin zu blöd das gescheit einzustellen..... Könnte ich nochmal gucken...<br />
Ich probiers so wie du gesagt hast, wenn nicht mit static, und wenn das fehlschlägt meld ich mich nochmal....<br />
merci Ishi131</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1958629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1958629</guid><dc:creator><![CDATA[Ishi131]]></dc:creator><pubDate>Tue, 28 Sep 2010 16:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse an Klasse übergeben on Thu, 30 Sep 2010 20:31:59 GMT]]></title><description><![CDATA[<p>SeppJs Vorschlag und deine Bedenken sind durchaus vereinbar.<br />
Deine Bildklasse hat ja die Punkte und kann feststellen ob einer der Punkte angeklickt wurde. Das kannst du ja so beibehalten.<br />
Was du jetzt beispielsweie anders machen könntest wäre das ganze boolzeugs aus der Bildklasse rauszunehmen und die Spielklasse einfach darüber zu informieren das ein Punkt geklickt wurde und auch welcher. Diese Informatione kannst du dann beispielsweise in einer Liste speichern. Sollte ein Punkt der zurückgegeben wird bereits in der Liste vorhanden sein ist kein neuer Fehler aufgedeckt worden.</p>
<p>Wie du das machst ist dann ersteinmal egal. Beispielsweise könntest du ein Ereignis auslösen das die Spieklasse fängt oder du sendest ein QT-Signal deiner Bildklasse das einen Slot der Spielkasse auslöst.<br />
Alternativ kannst du deinen Bildkalssen auch ein Zeiger auf das verwaltende Objekt übergeben.</p>
<p>Aber egal, worauf ich hinaus möchte ist, dass du in deinem Bild prüfst ob ein relevanter Punkt geklickt wurde. Ob das nun jedoch ein Fehler ist oder nicht lässt du andere entscheiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1959760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1959760</guid><dc:creator><![CDATA[Ka-Mensch]]></dc:creator><pubDate>Thu, 30 Sep 2010 20:31:59 GMT</pubDate></item></channel></rss>