<?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: Instanz einer Klasse als Elementvariable einer anderen?]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich habe eine Frage, die mir absolut keine Ruhe lässt:<br />
Ich sitze an einer Aufgabe, die sich um zwei Klassen dreht: 1. Punkt und 2. Rechteck, das aus vier Instanzen von Punkt besteht dreht:</p>
<p>Ich habe eine Klasse Punkt mit Parametern, Konstruktor und verschiedenen get/set-Methoden (Quelldatei bzw. Headerdatei Punkt.cpp und Punkt.h)</p>
<p>Nun soll ich eine Klasse Rechteck machen (geschrieben in eine neue Quell/Headerdateien Rechteck.cpp / .h). Das konstruierte Rechteck soll aus 4 Punkten ( = also Instanzen der Klasse Punkt) bestehen.<br />
Damit ich in Rechteck.cpp auf die Punkte und get/set-Methoden der Klasse Punkt zugreifen kann (für später, Fläche/Umfang vom Rechteck), binde ich die Headerdatei der Punktklasse ein (#include &quot;Punkt.h&quot;)</p>
<p>Jetzt wollte ich für die Klasse Rechteck die Elementvariablen definieren: es sollen vier Punkte aus Klasse Punkt sein. Mein Versuch:</p>
<p>Hier die Rechteck.h :</p>
<pre><code class="language-cpp">[...]
#include  &quot;Punkt.h&quot;

class Rechteck
{
private:
	//Elementvariablen
	Punkt a, b, c, d;

// ... getter/setter etc.
}
</code></pre>
<p>Und die dazugehörige Rechteck.cpp:</p>
<pre><code class="language-cpp">#include&quot; Punkt.h&quot;

// Konstruktoren
Rechteck::Rechteck(void)
{
	Punkt a;
	Punkt b;
	Punkt c;
	Punkt d;
}
// [...]
</code></pre>
<p>Ist die Definition der Parameter so in Ordnung, dass dadurch das Rechteck aus vier Instanzen der Klasse Punkt konstruiert würde?</p>
<p>Wie gesagt: Ich kann es leider bis Mittwoch nicht probieren (keine IDE), lässt mir aber keine Ruhe! Danke im Voraus!</p>
<p>PS: Falls sich jemand beschwert: Die Idee der &quot;Auslagerung&quot; in mehrere Quelldateien/Einbindung eigener Header stammt nicht von mir, das soll allerdings genau so geschehen!<br />
Auch entschuldige ich mich vorab für die etwas wirre Ausdrucksweise und evtl. irrtümliche Bezeichnungen, ich bin mit den Begriffen der OOP noch nicht vollends vertraut.</p>
<p>Gruß</p>
<p>Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287099/klassen-instanz-einer-klasse-als-elementvariable-einer-anderen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 14:40:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287099.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 22 May 2011 19:02:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassen: Instanz einer Klasse als Elementvariable einer anderen? on Sun, 22 May 2011 19:02:48 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich habe eine Frage, die mir absolut keine Ruhe lässt:<br />
Ich sitze an einer Aufgabe, die sich um zwei Klassen dreht: 1. Punkt und 2. Rechteck, das aus vier Instanzen von Punkt besteht dreht:</p>
<p>Ich habe eine Klasse Punkt mit Parametern, Konstruktor und verschiedenen get/set-Methoden (Quelldatei bzw. Headerdatei Punkt.cpp und Punkt.h)</p>
<p>Nun soll ich eine Klasse Rechteck machen (geschrieben in eine neue Quell/Headerdateien Rechteck.cpp / .h). Das konstruierte Rechteck soll aus 4 Punkten ( = also Instanzen der Klasse Punkt) bestehen.<br />
Damit ich in Rechteck.cpp auf die Punkte und get/set-Methoden der Klasse Punkt zugreifen kann (für später, Fläche/Umfang vom Rechteck), binde ich die Headerdatei der Punktklasse ein (#include &quot;Punkt.h&quot;)</p>
<p>Jetzt wollte ich für die Klasse Rechteck die Elementvariablen definieren: es sollen vier Punkte aus Klasse Punkt sein. Mein Versuch:</p>
<p>Hier die Rechteck.h :</p>
<pre><code class="language-cpp">[...]
#include  &quot;Punkt.h&quot;

class Rechteck
{
private:
	//Elementvariablen
	Punkt a, b, c, d;

// ... getter/setter etc.
}
</code></pre>
<p>Und die dazugehörige Rechteck.cpp:</p>
<pre><code class="language-cpp">#include&quot; Punkt.h&quot;

// Konstruktoren
Rechteck::Rechteck(void)
{
	Punkt a;
	Punkt b;
	Punkt c;
	Punkt d;
}
// [...]
</code></pre>
<p>Ist die Definition der Parameter so in Ordnung, dass dadurch das Rechteck aus vier Instanzen der Klasse Punkt konstruiert würde?</p>
<p>Wie gesagt: Ich kann es leider bis Mittwoch nicht probieren (keine IDE), lässt mir aber keine Ruhe! Danke im Voraus!</p>
<p>PS: Falls sich jemand beschwert: Die Idee der &quot;Auslagerung&quot; in mehrere Quelldateien/Einbindung eigener Header stammt nicht von mir, das soll allerdings genau so geschehen!<br />
Auch entschuldige ich mich vorab für die etwas wirre Ausdrucksweise und evtl. irrtümliche Bezeichnungen, ich bin mit den Begriffen der OOP noch nicht vollends vertraut.</p>
<p>Gruß</p>
<p>Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067224</guid><dc:creator><![CDATA[TER]]></dc:creator><pubDate>Sun, 22 May 2011 19:02:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Instanz einer Klasse als Elementvariable einer anderen? on Sun, 22 May 2011 19:07:56 GMT]]></title><description><![CDATA[<p>Hier würden <code>a</code> bis <code>d</code> selbstständig konstruiert werden. Deshalb ist der Konstruktor sinnlos (ausser du benötigst spezielle Defaultwerte).</p>
<p>EDIT: Die .cpp-Datei von Rechteck benötigt keine Inkludierungen, sofern du den Header und die Sourcedatei korrekt gelinkt hast und die Sourcedatei den Header inkudiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067226</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 22 May 2011 19:07:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Instanz einer Klasse als Elementvariable einer anderen? on Sun, 22 May 2011 19:11:18 GMT]]></title><description><![CDATA[<p>Wenn du die Point-Member im Rechteck initialisieren willst, kannst du eine Initialisierungsliste verwenden, etwa so:</p>
<pre><code class="language-cpp">Rechteck::Rechteck()
  : a(0,0), b(0,1), c(1,1) d(1,0)
{ }
</code></pre>
<p>Allerdings solltest du in den Rechteck-Methoden darauf achten, daß da am Ende kein &quot;krummes&quot; Rechteck herauskommt <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/2067230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067230</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sun, 22 May 2011 19:11:18 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Instanz einer Klasse als Elementvariable einer anderen? on Sun, 22 May 2011 19:12:31 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Allerdings solltest du in den Rechteck-Methoden darauf achten, daß da am Ende kein &quot;krummes&quot; Rechteck herauskommt <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>
</blockquote>
<p>Oder man nutzt (wie normalerweise) nur zwei Punkte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067232</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sun, 22 May 2011 19:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Instanz einer Klasse als Elementvariable einer anderen? on Sun, 22 May 2011 20:20:55 GMT]]></title><description><![CDATA[<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Oder man nutzt (wie normalerweise) nur zwei Punkte.</p>
</blockquote>
<p>Damit deckst du nur achsenparallele Rechtecke ab. Falls das aber reicht, würde ich das Rechteck auch mit zwei Punkten beschreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067259</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 22 May 2011 20:20:55 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Instanz einer Klasse als Elementvariable einer anderen? on Sun, 22 May 2011 21:13:16 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>EOutOfResources schrieb:</p>
<blockquote>
<p>Oder man nutzt (wie normalerweise) nur zwei Punkte.</p>
</blockquote>
<p>Damit deckst du nur achsenparallele Rechtecke ab. Falls das aber reicht, würde ich das Rechteck auch mit zwei Punkten beschreiben.</p>
</blockquote>
<p>Falls das nicht ausreichen sollte, kannst du die Abstände a&lt;-&gt;c == b&lt;-&gt;d vergleichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067280</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Sun, 22 May 2011 21:13:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klassen: Instanz einer Klasse als Elementvariable einer anderen? on Mon, 23 May 2011 00:01:12 GMT]]></title><description><![CDATA[<p>Man kann auch nur die Daten speichern, mit denen das Rechteck eindeutig ist. Zum Beispiel zwei Punkte und ein Drehwinkel. Mit dem Vergleich erhöhst du nur den Aufwand für den Benutzer und hast zudem das Problem unexakter Floating-Point-Gleichheit.</p>
<p>(Oder intern zur Optimierung vier Punkte speichern, aber die Schnittstelle von der Redundanz befreien.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2067294</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2067294</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 23 May 2011 00:01:12 GMT</pubDate></item></channel></rss>