<?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[C++ Aggregation&#x2F;Komposition]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zu UML und c++.</p>
<p>Ich habe mir eine verkettete Liste gebaut. Leider weis ich nicht ob ich das mit der Aggregation<br />
richtig verstanden habe.</p>
<p>Die Klasse PcapFrameNode beschreibt ein Listenelement. In der Klasse ist<br />
ein Zeiger auf sich selbst vorhanden usw.<br />
In der Klasse PcapFrameList beschreibt die Funktionen, die eine<br />
verkettete Liste hat (Löschen der Liste und Ausgabe..).</p>
<p>Die Klasse PcapFrameList besitzt vier Zeiger, die auf Objekte der Klasse<br />
PcapFrameNode zeigen können. In welcher Beziehung stehen die beiden<br />
Klassen zu einander. Ist es eine Komposition oder Aggregation.</p>
<p>Meiner Meinung nach ist es eine Komposition, da die Lebensdauer der<br />
PcapNode-Objekte, auf die die vier Zeiger zeigen, von der<br />
Lebensdauer der Klasse PcapFrameList, abhängt (Im Destruktor der Klasse PcapFrameList lösche ich mit clear alle Nodes). Ist das richtig?</p>
<p>Für die Zahlen, die an den Pfeil geschrieben werden müssen: Die Klasse PcapFrameList besitzt genau vier Zeiger auf PcapFrameNode Objekte und ein PcapFrameNode-Objekt kann entweder keinem oder einem PcapFrameList Objekt angehören. Ein PcapFrameNode könnte nämlich auch ohne Liste existieren. Ist das<br />
korrekt?</p>
<pre><code class="language-cpp">class PcapFrameNode : public PcapFrame
{
	private:
		PcapFrameNode *m_next_p;
	public:
		PcapFrameNode ( unsigned int index=1,
			unsigned char *ts_usec=NULL, unsigned int ts_sec=0, unsigned int incl_len=0,
			unsigned int orig_len=0, unsigned char* payload=NULL) :
				PcapFrame(index, ts_usec, ts_sec, incl_len, orig_len, payload)
		{
			m_next_p = NULL;
		}
		int isLast()
		{
		}
		void setNextNode(PcapFrameNode *next_p=NULL)
		{
			m_next_p = next_p;
		}
		PcapFrameNode *get_next()
		{
			return m_next_p;
		}
};

class PcapFrameList
{
	private:
		PcapFrameNode *head_p, *laeufer_p, *last_p, *neu_p;
	public:
		PcapFrameList();
		~PcapFrameList()
		{
			clear();
		}
		PcapFrameNode* addItem(unsigned int index, unsigned char *ts_usec, unsigned int ts_sec, unsigned int incl_len, unsigned int orig_len, unsigned char* payload);
		PcapFrameNode *getHead()
		{
			return head_p;
		}
		unsigned int count();
		void print();
		void clear();
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/282441/c-aggregation-komposition</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 01:41:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282441.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Feb 2011 12:10:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Aggregation&#x2F;Komposition on Sun, 20 Feb 2011 12:10:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Frage zu UML und c++.</p>
<p>Ich habe mir eine verkettete Liste gebaut. Leider weis ich nicht ob ich das mit der Aggregation<br />
richtig verstanden habe.</p>
<p>Die Klasse PcapFrameNode beschreibt ein Listenelement. In der Klasse ist<br />
ein Zeiger auf sich selbst vorhanden usw.<br />
In der Klasse PcapFrameList beschreibt die Funktionen, die eine<br />
verkettete Liste hat (Löschen der Liste und Ausgabe..).</p>
<p>Die Klasse PcapFrameList besitzt vier Zeiger, die auf Objekte der Klasse<br />
PcapFrameNode zeigen können. In welcher Beziehung stehen die beiden<br />
Klassen zu einander. Ist es eine Komposition oder Aggregation.</p>
<p>Meiner Meinung nach ist es eine Komposition, da die Lebensdauer der<br />
PcapNode-Objekte, auf die die vier Zeiger zeigen, von der<br />
Lebensdauer der Klasse PcapFrameList, abhängt (Im Destruktor der Klasse PcapFrameList lösche ich mit clear alle Nodes). Ist das richtig?</p>
<p>Für die Zahlen, die an den Pfeil geschrieben werden müssen: Die Klasse PcapFrameList besitzt genau vier Zeiger auf PcapFrameNode Objekte und ein PcapFrameNode-Objekt kann entweder keinem oder einem PcapFrameList Objekt angehören. Ein PcapFrameNode könnte nämlich auch ohne Liste existieren. Ist das<br />
korrekt?</p>
<pre><code class="language-cpp">class PcapFrameNode : public PcapFrame
{
	private:
		PcapFrameNode *m_next_p;
	public:
		PcapFrameNode ( unsigned int index=1,
			unsigned char *ts_usec=NULL, unsigned int ts_sec=0, unsigned int incl_len=0,
			unsigned int orig_len=0, unsigned char* payload=NULL) :
				PcapFrame(index, ts_usec, ts_sec, incl_len, orig_len, payload)
		{
			m_next_p = NULL;
		}
		int isLast()
		{
		}
		void setNextNode(PcapFrameNode *next_p=NULL)
		{
			m_next_p = next_p;
		}
		PcapFrameNode *get_next()
		{
			return m_next_p;
		}
};

class PcapFrameList
{
	private:
		PcapFrameNode *head_p, *laeufer_p, *last_p, *neu_p;
	public:
		PcapFrameList();
		~PcapFrameList()
		{
			clear();
		}
		PcapFrameNode* addItem(unsigned int index, unsigned char *ts_usec, unsigned int ts_sec, unsigned int incl_len, unsigned int orig_len, unsigned char* payload);
		PcapFrameNode *getHead()
		{
			return head_p;
		}
		unsigned int count();
		void print();
		void clear();
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2023634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2023634</guid><dc:creator><![CDATA[jan123]]></dc:creator><pubDate>Sun, 20 Feb 2011 12:10:04 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Aggregation&#x2F;Komposition on Sun, 20 Feb 2011 14:59:25 GMT]]></title><description><![CDATA[<p>--- mom</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2023743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2023743</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 20 Feb 2011 14:59:25 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Aggregation&#x2F;Komposition on Sun, 20 Feb 2011 18:33:11 GMT]]></title><description><![CDATA[<p>Komposition ist, wenn du die Objekte innerhalb einer Klasse erstellst und löschst. Also wirst du da wohl auch eine solche haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2023871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2023871</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Sun, 20 Feb 2011 18:33:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Aggregation&#x2F;Komposition on Sun, 20 Feb 2011 18:53:30 GMT]]></title><description><![CDATA[<p>Was ist an der Erklaerung bei Wikipedia unverstaendlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2023883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2023883</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Sun, 20 Feb 2011 18:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Aggregation&#x2F;Komposition on Sun, 20 Feb 2011 18:56:15 GMT]]></title><description><![CDATA[<p>Na ja, aber die Frage ist, wie viele. Werden dort alle gelöscht oder löscht jedes Element der Liste die weiteren Elemente durch Rekursion? Davon hängt nämlich imo ab, ob die Komposition von Liste zu Element nur 0..1 : 1 oder 0..1 : n mit n = Anzahl der Knoten ist. Die restlichen drei Zeiger müsste man dann ja zu einer Aggregation oder Assoziation auslagern (imo Auslegungssache, was man von den zwei nimmt; denn was ist der Unterschied von &quot;hat&quot; und &quot;kennt&quot;, wenn mit &quot;hat&quot; nicht das Erstellen gemeint ist? Man kann vll. &quot;kennt&quot; so auslegen, dass manchen Methoden die Objekte übergeben werden, diese aber nicht in der Klasse als Attribute vorliegen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2023885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2023885</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 20 Feb 2011 18:56:15 GMT</pubDate></item></channel></rss>