<?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[Assoziation &amp;amp; Aggregation]]></title><description><![CDATA[<p>Hi Ihr,</p>
<p>Wir haben in der Schule jetzt in C++ Assoziationen gemacht aber ich verstehe irgendwie nicht so den Unterschied zur Aggregation, die wir schon vor einigen Monaten gemacht haben.<br />
Bei der Assoziation ging es bei uns darum, dass es beispielsweise möglich war das Formular an ein eigenes Objekt zu übergeben und innerhalb dieser Klasse auf Eigenschaften des Formulares zu zu greifen.<br />
Ich kann mir jedoch genauso gut zwei eigene Klassen schreiben, diese Aggregieren und dann ebenfalls über die eine Eigenschaften der anderen ändern.<br />
Kann mir eventuell jemand erklären, was genau der Unterschied ist?</p>
<p>cya<br />
David</p>
<p>PS: Bei der Assoziation wird das Formular irgendwie an die andere Klasse übergeben und 'überschreibt' diese irgendwie.<br />
Beziehungsweise ist es dann plötzlich möglich über zwei verschiedene Objekte, die Eigenschaften der selben Instanz zu verändern. Hat das eventuell etwas mit dem Unterschied zutun oder habe ich da was falsch verstanden? <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182686/assoziation-amp-aggregation</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 22:21:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182686.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 May 2007 08:29:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Mon, 28 May 2007 08:30:15 GMT]]></title><description><![CDATA[<p>Hi Ihr,</p>
<p>Wir haben in der Schule jetzt in C++ Assoziationen gemacht aber ich verstehe irgendwie nicht so den Unterschied zur Aggregation, die wir schon vor einigen Monaten gemacht haben.<br />
Bei der Assoziation ging es bei uns darum, dass es beispielsweise möglich war das Formular an ein eigenes Objekt zu übergeben und innerhalb dieser Klasse auf Eigenschaften des Formulares zu zu greifen.<br />
Ich kann mir jedoch genauso gut zwei eigene Klassen schreiben, diese Aggregieren und dann ebenfalls über die eine Eigenschaften der anderen ändern.<br />
Kann mir eventuell jemand erklären, was genau der Unterschied ist?</p>
<p>cya<br />
David</p>
<p>PS: Bei der Assoziation wird das Formular irgendwie an die andere Klasse übergeben und 'überschreibt' diese irgendwie.<br />
Beziehungsweise ist es dann plötzlich möglich über zwei verschiedene Objekte, die Eigenschaften der selben Instanz zu verändern. Hat das eventuell etwas mit dem Unterschied zutun oder habe ich da was falsch verstanden? <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293489</guid><dc:creator><![CDATA[777]]></dc:creator><pubDate>Mon, 28 May 2007 08:30:15 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Mon, 28 May 2007 08:45:04 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Die Aggregation ist ein Spezialfall der <a href="http://de.wikipedia.org/wiki/Assoziation_%28UML%29#Komposition_und_Aggregation" rel="nofollow">Assoziation</a>.<br />
Außerdem solltest du vermeiden solche sehr allgemeinen Konzepte mit konkreten Implementierungen zu erläutern, zumindestens ich kann jedenfalls nicht wirklich nachvollziehen was du zum beispiel damit meinst</p>
<blockquote>
<p>Bei der Assoziation wird das Formular irgendwie an die andere Klasse übergeben und 'überschreibt' diese irgendwie</p>
</blockquote>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293500</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Mon, 28 May 2007 08:45:04 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Mon, 28 May 2007 08:44:11 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-14774.html" rel="nofollow">akari</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-2.html" rel="nofollow">VCL/CLX (Borland C++ Builder)</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-8.html" rel="nofollow">Rund um die Programmierung</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293501</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 28 May 2007 08:44:11 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Mon, 28 May 2007 10:11:17 GMT]]></title><description><![CDATA[<p>Die ganzen Begriffe aus der UML (meistens macht man halt das ganze als UML-Diagramm) kann man meistens garnicht in einer Programmiersprache &quot;darstellen&quot;. Denn die Programmiersprachen können diese Leistung mit ihrem Sprachumfang garnicht abdecken. Wenn man das ganze in C++ oder Java umsetzt, muß man meinstens das ganze in der Implementierung &quot;abschwächen&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293566</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Mon, 28 May 2007 10:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Mon, 28 May 2007 11:29:14 GMT]]></title><description><![CDATA[<p>Okay ich gebe mal ein kleines Beispiel, was ich mir unter Assoziation vorstelle.<br />
Ich möchte von Klasse zwei das Attribut 'a' in Klasse eins ändern.</p>
<p>CPP-Datei:</p>
<pre><code>TForm1 *Form1;
zwei * two;
eins * one;
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
   two = new zwei;
   one = new eins;
   two-&gt;set_zwei(one);
   two-&gt;set_a(3);
}
</code></pre>
<p>Header-Datei:</p>
<pre><code>class eins
{
   private:
      int a;
};
class zwei
{
   private:
      eins * zu;
   public:
      void set_zwei(eins* zw)
      {
         zu = zw;
      }
      void set_a(int aa)
      {
         zu-&gt;a = aa;
      }
};
</code></pre>
<p>Doch in dieser Zeile ist ein Fehler:</p>
<pre><code>zu-&gt;a = aa;
</code></pre>
<p>cya<br />
David</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293644</guid><dc:creator><![CDATA[777]]></dc:creator><pubDate>Mon, 28 May 2007 11:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Tue, 29 May 2007 21:57:29 GMT]]></title><description><![CDATA[<p>777 schrieb:</p>
<blockquote>
<p>Doch in dieser Zeile ist ein Fehler:</p>
<pre><code>zu-&gt;a = aa;
</code></pre>
</blockquote>
<p>1. Stimmt!<br />
2. &quot;42&quot; oder &quot;was war jetzt die Frage zu der Zeile&quot;?</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294860</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Tue, 29 May 2007 21:57:29 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Tue, 29 May 2007 22:12:22 GMT]]></title><description><![CDATA[<p>777 schrieb:</p>
<blockquote>
<p>Kann mir eventuell jemand erklären, was genau der Unterschied ist?</p>
</blockquote>
<p>Der Unterschied ist weniger der im Code zu finden als in der Modellierung:</p>
<p>Ein Auto hat 4 Räder -&gt; Aggregation (Räder sind Teil des Autos)<br />
Ein Auto weiß auf welcher Straße es gerade fährt -&gt; Assoziation (Auto &quot;kennt&quot; die Straße)</p>
<p>Vielleicht einfach mal <a href="http://www.google.com/search?q=association+vs+aggregation" rel="nofollow">www.google.com/search?q=association+vs+aggregation</a>, <a href="http://de.wikipedia.org/wiki/Assoziation_%28UML%29" rel="nofollow">http://de.wikipedia.org/wiki/Assoziation_%28UML%29</a> o.ä. bemühen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294870</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Tue, 29 May 2007 22:12:22 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Wed, 30 May 2007 13:08:02 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>777 schrieb:</p>
<blockquote>
<p>Kann mir eventuell jemand erklären, was genau der Unterschied ist?</p>
</blockquote>
<p>Der Unterschied ist weniger der im Code zu finden als in der Modellierung:</p>
<p>Ein Auto hat 4 Räder -&gt; Aggregation (Räder sind Teil des Autos)<br />
Ein Auto weiß auf welcher Straße es gerade fährt -&gt; Assoziation (Auto &quot;kennt&quot; die Straße)</p>
<p>Vielleicht einfach mal <a href="http://www.google.com/search?q=association+vs+aggregation" rel="nofollow">www.google.com/search?q=association+vs+aggregation</a>, <a href="http://de.wikipedia.org/wiki/Assoziation_%28UML%29" rel="nofollow">http://de.wikipedia.org/wiki/Assoziation_%28UML%29</a> o.ä. bemühen.</p>
</blockquote>
<p>Eine &quot;reine&quot; Assoziation (also keine Aggregation oder gar Komposition) entspricht imo einer Verwendung einer Klasseninstanz (oder Ref od. Ptr darauf)</p>
<p>- als formalem Parameter einer Methode<br />
- als lokalem Ausdruck in einer Methode (&quot;Variable&quot; will nicht scheiben da z.B. auf Singletons sowas wie getInstance() möglich ist).</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4239">@finix</a>:<br />
Siehst Du noch eine andere Entsprechung unter C++ die sie nicht zur Aggrgation/Koposition spezialisiert?</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295195</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Wed, 30 May 2007 13:08:02 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Wed, 30 May 2007 14:27:34 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4239">@finix</a>:<br />
Siehst Du noch eine andere Entsprechung unter C++ die sie nicht zur Aggrgation/Koposition spezialisiert?</p>
</blockquote>
<p>Um, ja, mein voriges Beispiel.</p>
<p>Ich sehe die Formulierung &quot;unter C++&quot; eigentlich eher als problematisch an. Du hast im Modell Assoziationen, Aggregationen etc., und das wird dann, in welcher Form auch immer, in C++ umgesetzt.</p>
<p>Aber du kannst z.B. bei</p>
<pre><code class="language-cpp">struct foo
{
  bar* baz;
};
</code></pre>
<p>nicht hergehen und aus dieser Definition herleiten dass das jetzt eine Aggregation oder was auch immer ist. Könnte genauso gut eine stinknormale Assoziation sein, oder eine Komposition, oder auch gar nicht im Modell vorkommen sondern einfach nur ein Artefakt der Implementation sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295265</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 30 May 2007 14:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Wed, 30 May 2007 14:42:55 GMT]]></title><description><![CDATA[<p>Deshalb habe ich oben schon gesagt, das man die UML nicht in C++ abbilden kann. C++ (und andere Sprachen) bieten garnicht den entsprechenden Sprachumfang an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295280</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 30 May 2007 14:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Wed, 30 May 2007 14:43:13 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>Gast++ schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/4239">@finix</a>:<br />
Siehst Du noch eine andere Entsprechung unter C++ die sie nicht zur Aggrgation/Koposition spezialisiert?</p>
</blockquote>
<p>Um, ja, mein voriges Beispiel.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> &quot;Auto kennt die Strasse&quot;</p>
<pre><code class="language-cpp">// Car.hpp
#include &quot;Street.hpp&quot;
//...
class Car {
public: // or whatever visibility
    void drive(Street&amp; street);
//...
}:
// resp
// Car.cpp
#include &quot;Street.hpp&quot;
//...
void Car::drive(void) {
    Street street;
    //...  
}
</code></pre>
<p>Oder wie sonst noch?</p>
<p>finix schrieb:</p>
<blockquote>
<p>Ich sehe die Formulierung &quot;unter C++&quot; eigentlich eher als problematisch an.</p>
</blockquote>
<p>Stimmt. Imo besser &quot;Umsetzung mittels&quot;. Einverstanden?</p>
<p>finix schrieb:</p>
<blockquote>
<p>Aber du kannst z.B. bei</p>
<pre><code class="language-cpp">struct foo
{
  bar* baz;
};
</code></pre>
</blockquote>
<p>Das ist aber jetzt die Richtung Code <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Model.<br />
Bei &quot;Assoziation&quot; et al sehe ich eher die Umsetzung Model <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Code als klärenswert an.</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295281</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Wed, 30 May 2007 14:43:13 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Wed, 30 May 2007 15:57:49 GMT]]></title><description><![CDATA[<p>Artchi schrieb:</p>
<blockquote>
<p>Deshalb habe ich oben schon gesagt, das man die UML nicht in C++ abbilden kann. C++ (und andere Sprachen) bieten garnicht den entsprechenden Sprachumfang an.</p>
</blockquote>
<p>Natürlich kann man UML in C++ (und vielen anderen Sprachen) abbilden!? Man kann es nur im Allgemeinen schlecht umkehren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295351</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 30 May 2007 15:57:49 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Wed, 30 May 2007 16:30:20 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p>Oder wie sonst noch?</p>
</blockquote>
<p>Ich meinte eigentlich eher</p>
<pre><code class="language-cpp">class car
{
  street*  location;
};
</code></pre>
<p>Das ist eine normale Assoziation.</p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>finix schrieb:</p>
<blockquote>
<p>Ich sehe die Formulierung &quot;unter C++&quot; eigentlich eher als problematisch an.</p>
</blockquote>
<p>Stimmt. Imo besser &quot;Umsetzung mittels&quot;. Einverstanden?</p>
</blockquote>
<p>Perfekt <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="😉"
    /></p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>Bei &quot;Assoziation&quot; et al sehe ich eher die Umsetzung Model <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Code als klärenswert an.</p>
</blockquote>
<p>Naja, Assoziation läuft doch im Prinzip zumeist darauf hinaus ein <code>bar*</code> oder <code>container&lt;bar*&gt;</code> im <code>foo</code> zu haben. Aber das kann man natürlich implementieren wie man will - wenn von 100.000 <code>foo</code> in der Regel nur 4, 5 tatsächlich zu <code>bar</code> s in Beziehung stehen könnte man diese auch einfach &quot;auslagern&quot;.</p>
<p>Eine Operation <code>car::crash_into(tree)</code> würde ich jetzt nicht als Assoziation zwischen <code>car</code> und <code>tree</code> sehen, und einen &quot;lokalen Ausdruck in einer Methode&quot; noch viel weniger. Das war nicht wirklich was ich mit &quot;kennen&quot; meinte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295385</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Wed, 30 May 2007 16:30:20 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Wed, 30 May 2007 17:11:47 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>Ich meinte eigentlich eher</p>
<pre><code class="language-cpp">class car
{
  street*  location;
};
</code></pre>
<p>Das ist eine normale Assoziation.</p>
</blockquote>
<p>Jein. <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="😃"
    /> Ich geb ja gerne zu dass ich PDFs hasse und insbesondere die von der OMG (Object Managemtn Group aka &quot;Oh My God&quot; aka &quot;Our Metaspec Gospel&quot;), aber <strong>dies</strong> ist imo eine Aggregation (UML &quot;by reference&quot;), also eine spezialisierte Assoziation.</p>
<p>finix schrieb:</p>
<blockquote>
<p>Gast++ schrieb:</p>
<blockquote>
<p>Bei &quot;Assoziation&quot; et al sehe ich eher die Umsetzung Model <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Code als klärenswert an.</p>
</blockquote>
<p>Naja, Assoziation läuft doch im Prinzip zumeist darauf hinaus ein <code>bar*</code> oder <code>container&lt;bar*&gt;</code> im <code>foo</code> zu haben.</p>
</blockquote>
<p>Dto; ich kenne das als Aggregation(UML &quot;by reference&quot;)</p>
<p>Grüsse</p>
<p>*this</p>
<p>P.S.:</p>
<p>finix schrieb:</p>
<blockquote>
<p>Eine Operation [c]car::crash_into(tree)</p>
</blockquote>
<p>Ach was, sowas löst man mit einem Sentry</p>
<pre><code class="language-cpp">class Sentry {
public:
    Sentry(Tree* pTree) {
         delete pTree;
    }
};

class Car { 
public:
    void crash_into(Sentry s) {

    }
};
</code></pre>
<p>...und schon isser weg, der Baum. <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>Kennst Du den MS-Airback?</p>
<p>&quot;Es hat sich ein Auffahrunfall ereignet! Airbag wirklich aufblasen?&quot;<br />
&lt;Ja&gt; &lt;Nein&gt; &lt;Abbrechen&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295421</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Wed, 30 May 2007 17:11:47 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Thu, 31 May 2007 15:44:19 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p>Jein. <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="😃"
    /> Ich geb ja gerne zu dass ich PDFs hasse und insbesondere die von der OMG (Object Managemtn Group aka &quot;Oh My God&quot; aka &quot;Our Metaspec Gospel&quot;), aber <strong>dies</strong> ist imo eine Aggregation (UML &quot;by reference&quot;), also eine spezialisierte Assoziation.</p>
</blockquote>
<p>Hmm, naja, ich bin kein UML-Spezialist, von daher könntest du ggf. recht haben. Gibt's da irgendwo ein Zitat zu?</p>
<p>Gast++ schrieb:</p>
<blockquote>
<p>...und schon isser weg, der Baum. <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>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296122</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 31 May 2007 15:44:19 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Thu, 31 May 2007 16:27:24 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>Hmm, naja, ich bin kein UML-Spezialist, von daher könntest du ggf. recht haben. Gibt's da irgendwo ein Zitat zu?</p>
</blockquote>
<p>Zitate gibt's viele (z.B. könnten meine ehemaligen Kursteilnehemr mich zitieren) aber was bringt das?</p>
<p>Autoritativ wäre</p>
<p>- ein Statement der OMG<br />
- ein Statement von Prof. Stroustrup</p>
<p>Die OMG begibt sich aber nicht in gerne in die Niederungen konkreter Programmiersprachen und von Prof. Stroustrup kenne ich nichts explizites zum Verhältnis C++/UML.</p>
<p>In den &quot;Sekudaärpublikationen&quot; zu den OMG Standards findet sich der Terminus &quot;Whole/Part&quot; Beziehung, z.B. hier</p>
<p><a href="http://www-306.ibm.com/software/rational/uml/" rel="nofollow">http://www-306.ibm.com/software/rational/uml/</a></p>
<p>in Document &quot;Basics III&quot; auf S. 9.</p>
<p>&quot;Whole/Part&quot; führt mittels C++ umgesetzt zu einer &quot;Membervariable&quot; ggf. in einem Container.<br />
Und für komplexe Typen gilt dies auch umgekehrt.</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296143</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Thu, 31 May 2007 16:27:24 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Thu, 31 May 2007 17:11:11 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p>&quot;Whole/Part&quot; führt mittels C++ umgesetzt zu einer &quot;Membervariable&quot; ggf. in einem Container.<br />
Und für komplexe Typen gilt dies auch umgekehrt.</p>
</blockquote>
<p>Dem ersten Teil kann ich - im Allgemeinen, s.o. - zustimmen, aber wieso sollte dies auch umgekehrt gelten?</p>
<p>Wie würdest du denn <code>Flight</code> und <code>Plane</code> in C++ umsetzen, das Beispiel zur bidirektionalen (Standard-) Assoziation auf Seite 6?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296158</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 31 May 2007 17:11:11 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Thu, 31 May 2007 18:09:33 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>Gast++ schrieb:</p>
<blockquote>
<p>&quot;Whole/Part&quot; führt mittels C++ umgesetzt zu einer &quot;Membervariable&quot; ggf. in einem Container.<br />
Und für komplexe Typen gilt dies auch umgekehrt.</p>
</blockquote>
<p>Dem ersten Teil kann ich - im Allgemeinen, s.o. - zustimmen, aber wieso sollte dies auch umgekehrt gelten?</p>
</blockquote>
<p>Wenn &quot;etwas&quot; (die Membervaiable) in etwas anderem (der Klasse resp ihren Instanzen) enthalten ist ist es ein Teil.<br />
Meine Einschränkung bezog sich auf PODs und Basistypen (std::string), die muss man nicht als Supplier einer Aggregation/Komposition modellieren; sondern nimmt sie einfach als &quot;normale&quot; Attribute auf.</p>
<p>finix schrieb:</p>
<blockquote>
<p>Wie würdest du denn <code>Flight</code> und <code>Plane</code> in C++ umsetzen, das Beispiel zur bidirektionalen (Standard-) Assoziation auf Seite 6?</p>
</blockquote>
<p>Was da zu sehen ist ist eine fachliche Modellierung; das sollte man nicht 1:1 abzubilden versuchen sondern mit einer weiteren Klasse zu einem Dreieck erweitern.</p>
<p>&quot;CFlight&quot; und &quot;CPlane&quot; kennen sich dann nicht mehr sondern z.B. &quot;CSchedule&quot; kennt beide und garantiert die Kardinalitäten.</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296178</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Thu, 31 May 2007 18:09:33 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Thu, 31 May 2007 19:43:22 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p>Was da zu sehen ist ist eine fachliche Modellierung; das sollte man nicht 1:1 abzubilden versuchen sondern mit einer weiteren Klasse zu einem Dreieck erweitern.</p>
<p>&quot;CFlight&quot; und &quot;CPlane&quot; kennen sich dann nicht mehr sondern z.B. &quot;CSchedule&quot; kennt beide und garantiert die Kardinalitäten.</p>
</blockquote>
<p>&quot;Sollte&quot; und &quot;versuchen&quot; hören sich nicht direkt an wie &quot;OMFG hat entschieden das muss so gemacht werden&quot;.</p>
<p>Btw, Ungarische Notation ist evil <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296247</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 31 May 2007 19:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to Assoziation &amp;amp; Aggregation on Thu, 31 May 2007 20:32:25 GMT]]></title><description><![CDATA[<p>finix schrieb:</p>
<blockquote>
<p>&quot;Sollte&quot; und &quot;versuchen&quot; hören sich nicht direkt an wie &quot;OMFG hat entschieden das muss so gemacht werden&quot;.</p>
</blockquote>
<p>Dazu brauch ich nicht die OMG; dazu reicht mir meine Logik und meine Erfahrung mit zyklischen Abhängigkeiten und Forward-Deklaratioenen.</p>
<p>Was würde Dir ein Statement der OMG bringen wenn Du's in der Programmiersprache nicht ohne weitgehende Zugeständnisse zu Lasten guten Progrmmierstils umsetzen könntest?</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296276</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Thu, 31 May 2007 20:32:25 GMT</pubDate></item></channel></rss>