<?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[Klassen: Welches design sinnvoll?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine ganz einfache frage: Ich habe mehrere klassen die alle einen hauptalgorithmus darstellen. Alle diese klassen haben mehrere Methoden gemeinsam. Ich würde gerne diese Methoden in eine eigene Klasse packen und dann allen &quot;Hauptklassen&quot; zur verfügung stellen. Nur was wäre hier eine sinnvolle Möglihckeit?<br />
Soll ich die Hauptklassen von der einen klasse jeweils erben lassen? Oder soll ich eher jeder Klasse ein Objekt auf diese subklasse geben?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266924/klassen-welches-design-sinnvoll</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Apr 2026 16:07:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266924.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 May 2010 17:30:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen: Welches design sinnvoll? on Sun, 16 May 2010 17:30:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine ganz einfache frage: Ich habe mehrere klassen die alle einen hauptalgorithmus darstellen. Alle diese klassen haben mehrere Methoden gemeinsam. Ich würde gerne diese Methoden in eine eigene Klasse packen und dann allen &quot;Hauptklassen&quot; zur verfügung stellen. Nur was wäre hier eine sinnvolle Möglihckeit?<br />
Soll ich die Hauptklassen von der einen klasse jeweils erben lassen? Oder soll ich eher jeder Klasse ein Objekt auf diese subklasse geben?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898017</guid><dc:creator><![CDATA[Anfänger_neu++]]></dc:creator><pubDate>Sun, 16 May 2010 17:30:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Welches design sinnvoll? on Sun, 16 May 2010 17:39:10 GMT]]></title><description><![CDATA[<p>Wenn deine Hauptklasse Funktionen kapselt, die fuer alle ihre Kinder relevant sind, dann ist das Vererbungsmodell sinnvoll.</p>
<p>Also ähnlich der Tatsache, dass eine Klasse Tier eine Funktion setLebensraum beinhalten kann, weil jedes Tier nunmal so etwas hat.</p>
<p>Die Nutzung von Aggregation und Assoziation macht dann Sinn, wenn etwas ein Teil von etwas ist. Zum Beispiel bei der Klasse Mannschaft ist ein Spieler ja keine Mannschaft. Spieler ist ein Teil von Mannschaft und wird dann wohl als Objekt in dieser welchen Klasse auch erstellt.</p>
<p>In deinem Fall musst du dann entscheiden, was für dich zutrifft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898021</guid><dc:creator><![CDATA[BasicMan01]]></dc:creator><pubDate>Sun, 16 May 2010 17:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Welches design sinnvoll? on Sun, 16 May 2010 17:40:44 GMT]]></title><description><![CDATA[<p>Wenn du ohne Einschränkung Aggregation einsetzen kannst (d.h. ein Member der gemeinsamen Klasse haben), dann tu das. Vererbung würde ich nur einsetzen, wenn du es wirklich brauchst bzw. einen tatsächlichen Vorteil dadurch hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898022</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 16 May 2010 17:40:44 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Welches design sinnvoll? on Sun, 16 May 2010 17:41:24 GMT]]></title><description><![CDATA[<p>Im allgemeinen sollte die Aggregation der (privaten) Vererbung vorgezogen werden.<br />
Wenn du Effective C++ hat kannst du da noch mal reinschauen, das wird doch recht ausführlich behandelt. Wenn nicht, dann kaufen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898023</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 16 May 2010 17:41:24 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Welches design sinnvoll? on Sun, 16 May 2010 17:50:40 GMT]]></title><description><![CDATA[<p>Gibt deinen Klassen Namen und frag dich, ob X ein Y hat (Aggregation ) oder ob X ein Y ist (Vererbung) oder ob du die Funktionen nur in nen Namespace stecken kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898031</guid><dc:creator><![CDATA[rockabilly]]></dc:creator><pubDate>Sun, 16 May 2010 17:50:40 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Welches design sinnvoll? on Sun, 16 May 2010 17:58:58 GMT]]></title><description><![CDATA[<p>In dem fall hätten die drei klassen C1, C2, C3 jeweils alle die Klasse D. Also wäre das wohl Aggregation....ich suche bereits nach einem intuitiven leichten beispiel in c++ welches die Aggregation erklärt...</p>
<p>danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898038</guid><dc:creator><![CDATA[Anfänger_neu++]]></dc:creator><pubDate>Sun, 16 May 2010 17:58:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Welches design sinnvoll? on Mon, 17 May 2010 07:29:53 GMT]]></title><description><![CDATA[<p>Anfänger_neu++ schrieb:</p>
<blockquote>
<p>In dem fall hätten die drei klassen C1, C2, C3 jeweils alle die Klasse D. Also wäre das wohl Aggregation....ich suche bereits nach einem intuitiven leichten beispiel in c++ welches die Aggregation erklärt...</p>
</blockquote>
<p>Ich mach mal ein sehr vereinfachtes Beispiel: Eine Person besitzt eine Anschrift.</p>
<pre><code class="language-cpp">class Anschrift
{
    //...
    public:
      std::string GetStrasse() const;
      std::string GetStadt() const;
    //...
};

class Person
{
    //...
    private:
      Anschrift privatAdresse; // Kann ebenso je nach Anforderung ein
                               // Zeiger, eine Referenz, eine Containerklasse...
                               // sein.
    //...
};
</code></pre>
<p>Aggregation kennst du mit Sicherheit schon, auch wenn du es nicht bewusst eingesetzt hast (Person hat einen Namen, Person hat ein Geburtsdatum)... Auch kann eine Aggregation eine 1:n Beziehung oder ähnliches sein (z.B. kenne ich Personen mit mehreren Anschriften).</p>
<p>Auch kann man die Aggregation mit der Vererbung gut kombinieren. Nehmen wir mal an, du hast mehrere Algorithmen, die eine gemeinsame Schnittstelle haben. Nehmen wir zudem an, das der Algorithmus zur Laufzeit ausgetauscht werden soll. Dann machst du eine Basisklasse für deine Algorithmen, und deine Klassen verwenden einen Zeiger auf die Basisklasse für den Algorithmus (So kannst du diesen jederzeit austauschen) =&gt; <a href="http://de.wikipedia.org/wiki/Strategie_%28Entwurfsmuster%29" rel="nofollow">Strategie (Entwurfsmuster)</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898235</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 17 May 2010 07:29:53 GMT</pubDate></item></channel></rss>