<?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[Designfrage für eine Gruppen Klasse und seiner Elemente.]]></title><description><![CDATA[<p>Ich schreibe momentan eine Gruppen Klasse.<br />
Die Elemente müssen jeweils wissen zu welcher Gruppe sie gehören,<br />
ferner müssen sie Methoden der Gruppe benutzen.<br />
Ich habe mir dazu einen Ansatz überlegt und folgendes Problem erhalten:</p>
<pre><code class="language-cpp">class Group {
public:
  Group();
  void add(const Element&amp; element);
  // ...und mehr Funktionen, ohne Relevanz für das Problem.
private:
  std::vector&lt;Element*&gt; elements_; // Hierzu gleich noch fragen.
};

class Element {
public:
  Element(const Group&amp; group);
  void setGroup(const Group&amp; group);
  //... wieder mehr Funktionen, wie oben, ohne Relevanz zum Problem.
private:
  Group* group; // Auch hier wieder fragen.
};
</code></pre>
<p>Schon geht es los mit den Problemen und Unklarheiten.</p>
<p>1. Ich arbeite in beiden Fällen mit Zeigern, was passiert, wenn z.B. die Gruppe<br />
vor dem Element den Destruktor aufruft und zerstört ist? Eine Verwendung der<br />
Gruppe in einer Methode des Elementes würde doch zu undefiniertem Verhalten<br />
führen (Der Speicherbereich gehört nicht mehr zum Programm). Gibt es dafür<br />
eine bessere Lösung?</p>
<p>2. Gibt es für dieses Problem eine bevorzugte Methode, um dem Benutzer der<br />
Klassen eine möglichst einfache Benutzung zu gewähren?</p>
<p>Über Anregungen und Lösungsmöglichkeiten würde ich mich freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196878/designfrage-für-eine-gruppen-klasse-und-seiner-elemente</link><generator>RSS for Node</generator><lastBuildDate>Wed, 30 Sep 2026 18:27:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196878.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 04 Nov 2007 02:08:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Designfrage für eine Gruppen Klasse und seiner Elemente. on Sun, 04 Nov 2007 02:08:29 GMT]]></title><description><![CDATA[<p>Ich schreibe momentan eine Gruppen Klasse.<br />
Die Elemente müssen jeweils wissen zu welcher Gruppe sie gehören,<br />
ferner müssen sie Methoden der Gruppe benutzen.<br />
Ich habe mir dazu einen Ansatz überlegt und folgendes Problem erhalten:</p>
<pre><code class="language-cpp">class Group {
public:
  Group();
  void add(const Element&amp; element);
  // ...und mehr Funktionen, ohne Relevanz für das Problem.
private:
  std::vector&lt;Element*&gt; elements_; // Hierzu gleich noch fragen.
};

class Element {
public:
  Element(const Group&amp; group);
  void setGroup(const Group&amp; group);
  //... wieder mehr Funktionen, wie oben, ohne Relevanz zum Problem.
private:
  Group* group; // Auch hier wieder fragen.
};
</code></pre>
<p>Schon geht es los mit den Problemen und Unklarheiten.</p>
<p>1. Ich arbeite in beiden Fällen mit Zeigern, was passiert, wenn z.B. die Gruppe<br />
vor dem Element den Destruktor aufruft und zerstört ist? Eine Verwendung der<br />
Gruppe in einer Methode des Elementes würde doch zu undefiniertem Verhalten<br />
führen (Der Speicherbereich gehört nicht mehr zum Programm). Gibt es dafür<br />
eine bessere Lösung?</p>
<p>2. Gibt es für dieses Problem eine bevorzugte Methode, um dem Benutzer der<br />
Klassen eine möglichst einfache Benutzung zu gewähren?</p>
<p>Über Anregungen und Lösungsmöglichkeiten würde ich mich freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397306</guid><dc:creator><![CDATA[Wakeup Call]]></dc:creator><pubDate>Sun, 04 Nov 2007 02:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für eine Gruppen Klasse und seiner Elemente. on Sun, 04 Nov 2007 05:19:21 GMT]]></title><description><![CDATA[<p>was das ganz werden soll ist mir nicht wirklich klar. kann es element ohne gruppe geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397310</guid><dc:creator><![CDATA[naja]]></dc:creator><pubDate>Sun, 04 Nov 2007 05:19:21 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für eine Gruppen Klasse und seiner Elemente. on Sun, 04 Nov 2007 08:10:34 GMT]]></title><description><![CDATA[<p>1. Einfach alle Elemente mitlöschen, du kennst sie doch.<br />
2. Ziemlich sicher ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397316</guid><dc:creator><![CDATA[iuhiuhipbnin]]></dc:creator><pubDate>Sun, 04 Nov 2007 08:10:34 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für eine Gruppen Klasse und seiner Elemente. on Sun, 04 Nov 2007 10:26:25 GMT]]></title><description><![CDATA[<p>Der Sinn des ganzen ist folgender:<br />
Die Elemente der Gruppe haben verschiedene Attribute, diese sind abhängig davon, ob ein Element der Gruppe eine bestimmte Methode benutzt hat oder nicht.</p>
<p>Ein Anwendungsbeispiel dafür wäre z.B. eine RadioButtonGroup, welche nur die Aktivierung eines Elementes zulässt.</p>
<p>Ich würde mich über kurze Code Beispiele freuen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397355</guid><dc:creator><![CDATA[Wakeup Call]]></dc:creator><pubDate>Sun, 04 Nov 2007 10:26:25 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage für eine Gruppen Klasse und seiner Elemente. on Sun, 04 Nov 2007 14:41:16 GMT]]></title><description><![CDATA[<p>vlt sowas wie observer pattern verwenden. die elemente können sich bei der gruppe registrieren und werden dann über ereignisse informiert. wenn ein elem gelöscht wird, wird es wieder deregistriert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1397502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1397502</guid><dc:creator><![CDATA[naja]]></dc:creator><pubDate>Sun, 04 Nov 2007 14:41:16 GMT</pubDate></item></channel></rss>