<?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[Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst]]></title><description><![CDATA[<p>Hallo und guten Abend liebe Gemeinde.<br />
Ich habe mich einmal in der Klassenprogrammierung probiert.<br />
Folgenden Quellcode habe ich aufgesetzt:<br />
In der Header-Datei „Deklaration.h“ habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">class Person
{
public:
	std::string Vorname;
	std::string Nachname;
	double Alter;
	double Gewicht;
	double Größe;
	std::string Augenfarbe;
	std::string Haarfarbe;
};
</code></pre>
<p>In der CPP – Datei habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;Deklaration.h&quot;
using namespace std;

int main()
{
	cout &lt;&lt; &quot;\tErste bewusste Klassendeklaration!\n&quot;;
	cout &lt;&lt; &quot;\n&quot;;

	Person Passant;

	cout &lt;&lt; &quot;Geben Sie Ihren Vornamen an!\n&quot;;
	cin  &gt;&gt; Passant.Vorname;

	cout &lt;&lt; &quot;Geben Sie Ihren Nachnamen an!\n&quot;;
	cin  &gt;&gt; Passant.Nachname;

	cout &lt;&lt; &quot;Geben Sie Ihr Alter an!\n&quot;;
	cin  &gt;&gt; Passant.Alter;

	cout &lt;&lt; &quot;Geben Sie Ihr Gewicht an!\n&quot;;
	cin  &gt;&gt; Passant.Gewicht;

	cout &lt;&lt; &quot;Geben Sie Ihre Augenfarbe an!\n&quot;;
	cin  &gt;&gt; Passant.Augenfarbe;

	cout &lt;&lt; &quot;Geben Sie Ihre Haarfarbe an!\n&quot;;
	cin  &gt;&gt; Passant.Haarfarbe;

	cout &lt;&lt; &quot;Geben Sie Ihre Groesse an!\n&quot;;
	cin  &gt;&gt; Passant.Größe;

	cout &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Das haben Sie angegeben:\n&quot;;
	cout &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Vorname:    &quot; &lt;&lt; Passant.Vorname &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Nachname:   &quot; &lt;&lt; Passant.Nachname &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Alter:      &quot; &lt;&lt; Passant.Alter &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Gewicht:    &quot; &lt;&lt; Passant.Gewicht &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Augenfarbe: &quot; &lt;&lt; Passant.Augenfarbe &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Haarfarbe:  &quot; &lt;&lt; Passant.Haarfarbe &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Groesse:    &quot; &lt;&lt; Passant.Größe &lt;&lt; &quot;\n&quot;;

	return 0;
}
</code></pre>
<p>Nun wollte ich die Variablen(=Daten=Attribute), die ich als <code>public</code> deklariert habe, als <code>private</code> deklarieren und über Elementfunktionen(=Methoden) auf die Attribute zugreifen.<br />
Hier noch einmal die Syntax für eine Klassendeklaration:</p>
<pre><code class="language-cpp">class Klassenname
{
public:
	Typ elementfunktion1();
	Typ elementfunktion2();
	//und weitere 

private:
	Typ attribut1;
	Typ attribut2;
	//weitere
};
</code></pre>
<p>Ich muss zugeben, dass ich momentan keinen Plan habe, wie ich einen Konstruktor, Destruktor und Elementfunktionen erstellen muss, damit ich eben auf die Attribute wie Haarfarbe, Augenfarbe, usw. zugreifen kann.<br />
Wie würdet ihr das machen? Hätte einer von euch einen konstruktiven Vorschlag bzw. Lösungsansatz??<br />
Vielen Dank für die Antworten im Voraus.<br />
Gruß<br />
Max</p>
<p>Edit:</p>
<p>Auf <a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a> wird folgendes Beispiel aufgeführt:</p>
<pre><code class="language-cpp">// classes example
#include &lt;iostream&gt;
using namespace std;

class CRectangle {
    int x, y;
  public:
    void set_values (int,int);
    int area () {return (x*y);}
};

void CRectangle::set_values (int a, int b) {
  x = a;
  y = b;
}

int main () {
  CRectangle rect;
  rect.set_values (3,4);
  cout &lt;&lt; &quot;area: &quot; &lt;&lt; rect.area();
  return 0;
}
</code></pre>
<p>Hier nun meine Fragen:<br />
1.)Kann es sein, dass man nicht immer einen Konstruktor und einen Destruktor benötigt?<br />
2.)x und y sind <code>private</code> . Kann man denn mit einer Funktion, im Beispiel von C++ Reference, mit <code>int area () {return (x*y);}</code> ganz einfach auf die Attribute x und y zugreifen?<br />
3.)Was hat der Datentyp <code>void</code> hier für eine Bedeutung? Verstehe ich das richtig, dass die Funktion <code>void set_values</code> nichts zurück gibt??<br />
4.)Warum werden x und y als private deklariert, wenn so wieso a und b verwendet werden??</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/313498/erstes-oop-projekt-erschaffung-einer-instanz-namens-person-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 10:23:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/313498.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 Feb 2013 18:32:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Sun, 24 Feb 2013 09:31:01 GMT]]></title><description><![CDATA[<p>Hallo und guten Abend liebe Gemeinde.<br />
Ich habe mich einmal in der Klassenprogrammierung probiert.<br />
Folgenden Quellcode habe ich aufgesetzt:<br />
In der Header-Datei „Deklaration.h“ habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">class Person
{
public:
	std::string Vorname;
	std::string Nachname;
	double Alter;
	double Gewicht;
	double Größe;
	std::string Augenfarbe;
	std::string Haarfarbe;
};
</code></pre>
<p>In der CPP – Datei habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &quot;Deklaration.h&quot;
using namespace std;

int main()
{
	cout &lt;&lt; &quot;\tErste bewusste Klassendeklaration!\n&quot;;
	cout &lt;&lt; &quot;\n&quot;;

	Person Passant;

	cout &lt;&lt; &quot;Geben Sie Ihren Vornamen an!\n&quot;;
	cin  &gt;&gt; Passant.Vorname;

	cout &lt;&lt; &quot;Geben Sie Ihren Nachnamen an!\n&quot;;
	cin  &gt;&gt; Passant.Nachname;

	cout &lt;&lt; &quot;Geben Sie Ihr Alter an!\n&quot;;
	cin  &gt;&gt; Passant.Alter;

	cout &lt;&lt; &quot;Geben Sie Ihr Gewicht an!\n&quot;;
	cin  &gt;&gt; Passant.Gewicht;

	cout &lt;&lt; &quot;Geben Sie Ihre Augenfarbe an!\n&quot;;
	cin  &gt;&gt; Passant.Augenfarbe;

	cout &lt;&lt; &quot;Geben Sie Ihre Haarfarbe an!\n&quot;;
	cin  &gt;&gt; Passant.Haarfarbe;

	cout &lt;&lt; &quot;Geben Sie Ihre Groesse an!\n&quot;;
	cin  &gt;&gt; Passant.Größe;

	cout &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Das haben Sie angegeben:\n&quot;;
	cout &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Vorname:    &quot; &lt;&lt; Passant.Vorname &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Nachname:   &quot; &lt;&lt; Passant.Nachname &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Alter:      &quot; &lt;&lt; Passant.Alter &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Gewicht:    &quot; &lt;&lt; Passant.Gewicht &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Augenfarbe: &quot; &lt;&lt; Passant.Augenfarbe &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Haarfarbe:  &quot; &lt;&lt; Passant.Haarfarbe &lt;&lt; &quot;\n&quot;;
	cout &lt;&lt; &quot;Groesse:    &quot; &lt;&lt; Passant.Größe &lt;&lt; &quot;\n&quot;;

	return 0;
}
</code></pre>
<p>Nun wollte ich die Variablen(=Daten=Attribute), die ich als <code>public</code> deklariert habe, als <code>private</code> deklarieren und über Elementfunktionen(=Methoden) auf die Attribute zugreifen.<br />
Hier noch einmal die Syntax für eine Klassendeklaration:</p>
<pre><code class="language-cpp">class Klassenname
{
public:
	Typ elementfunktion1();
	Typ elementfunktion2();
	//und weitere 

private:
	Typ attribut1;
	Typ attribut2;
	//weitere
};
</code></pre>
<p>Ich muss zugeben, dass ich momentan keinen Plan habe, wie ich einen Konstruktor, Destruktor und Elementfunktionen erstellen muss, damit ich eben auf die Attribute wie Haarfarbe, Augenfarbe, usw. zugreifen kann.<br />
Wie würdet ihr das machen? Hätte einer von euch einen konstruktiven Vorschlag bzw. Lösungsansatz??<br />
Vielen Dank für die Antworten im Voraus.<br />
Gruß<br />
Max</p>
<p>Edit:</p>
<p>Auf <a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a> wird folgendes Beispiel aufgeführt:</p>
<pre><code class="language-cpp">// classes example
#include &lt;iostream&gt;
using namespace std;

class CRectangle {
    int x, y;
  public:
    void set_values (int,int);
    int area () {return (x*y);}
};

void CRectangle::set_values (int a, int b) {
  x = a;
  y = b;
}

int main () {
  CRectangle rect;
  rect.set_values (3,4);
  cout &lt;&lt; &quot;area: &quot; &lt;&lt; rect.area();
  return 0;
}
</code></pre>
<p>Hier nun meine Fragen:<br />
1.)Kann es sein, dass man nicht immer einen Konstruktor und einen Destruktor benötigt?<br />
2.)x und y sind <code>private</code> . Kann man denn mit einer Funktion, im Beispiel von C++ Reference, mit <code>int area () {return (x*y);}</code> ganz einfach auf die Attribute x und y zugreifen?<br />
3.)Was hat der Datentyp <code>void</code> hier für eine Bedeutung? Verstehe ich das richtig, dass die Funktion <code>void set_values</code> nichts zurück gibt??<br />
4.)Warum werden x und y als private deklariert, wenn so wieso a und b verwendet werden??</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295437</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sun, 24 Feb 2013 09:31:01 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 19:37:04 GMT]]></title><description><![CDATA[<p>1.- ja, das stimmt. Du brauchst einen Konstruktor um ein Objekt zu erschaffen und initial in einen gültigen Zustand zu befördern. Einen Destruktor brauchst du nur in Sonderfällen, siehe dazu die Regel der Großen Drei.</p>
<p>2.- ja kannst, dafür sind diese Memberfunktionen (auch Methoden genannt) da</p>
<p>3.- Ja. Die setzt nur die Internas auf den übergebenen Wert</p>
<p>4.- Werden sie nicht. Es gibt das Konzept der Kapselung, such da mal nach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295453</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 01 Feb 2013 19:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 19:43:12 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>..., siehe dazu die Regel der Großen Drei.</p>
</blockquote>
<p>Was sind denn die Großen Drei??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295454</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295454</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Fri, 01 Feb 2013 19:43:12 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Thu, 12 Jun 2014 10:39:29 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295462</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 12 Jun 2014 10:39:29 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 20:21:21 GMT]]></title><description><![CDATA[<p>Mein Software Engineering Prof würde mich töten <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="🙂"
    /> Deklariere Attribute private und verwende Getter- und Setter-Methoden</p>
<p>LG, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295466</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 01 Feb 2013 20:21:21 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Thu, 12 Jun 2014 10:39:33 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295469</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 12 Jun 2014 10:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 20:28:16 GMT]]></title><description><![CDATA[<p>Da fällt mir eine Frage ein, die ich schon immer mal stellen wollte:<br />
Sämtliche Member sind bei mir privat und werden über Getter/Setter erreichbar. Bei Werten, bei denen es keine spezielle Prüfung gibt, ist da eine inline-Funktion genauso schnell, wie als wenn die Member public wären? Ich denke mal schon, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295470</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 01 Feb 2013 20:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 20:41:36 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>und verwende Getter- und Setter-Methoden</p>
</blockquote>
<p>Dafür würde dich der ein oder andere auch tötgen. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2295475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295475</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Fri, 01 Feb 2013 20:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 20:42:48 GMT]]></title><description><![CDATA[<p>Aber nur, wenn er keine Ahnung von Software Engineering hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295477</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Fri, 01 Feb 2013 20:42:48 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 21:06:33 GMT]]></title><description><![CDATA[<p>Nathan: Eher nicht, der Compiler optimiert das schon.<br />
freakC++: Da würde ich mich nicht so weit aus dem Fenster lehnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295484</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 01 Feb 2013 21:06:33 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Fri, 01 Feb 2013 21:15:47 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>Aber nur, wenn er keine Ahnung von Software Engineering hat.</p>
</blockquote>
<pre><code>struct Number
{
    int value;
};
</code></pre>
<p>vs.</p>
<pre><code>class Number
{
    int value;

public:
    int getValue() const
    {
        return value;
    }

    void setValue(int newValue)
    {
        value = newValue;
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2295487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295487</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Fri, 01 Feb 2013 21:15:47 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Sat, 02 Feb 2013 10:49:57 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>freakC++ schrieb:</p>
<blockquote>
<p>und verwende Getter- und Setter-Methoden</p>
</blockquote>
<p>Dafür würde dich der ein oder andere auch tötgen. <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>Der Trick ist, dass man nur Getter und Setter für die Member anbietet, auf die man von aussen auch Zugriff haben soll. Alles andere soll ja aber die &quot;normalen&quot; Methoden gehen. Der Nutzer soll ja auch keine Ahnung und auch kein Interesse an deiner Implementierung haben, wenn doch ist er schon falsch dran.</p>
<p>(Regel: Programmiere gegen Interfaces und nicht gegen Implementierungen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295550</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Sat, 02 Feb 2013 10:49:57 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 09:37:04 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>freakC++ schrieb:</p>
<blockquote>
<p>Aber nur, wenn er keine Ahnung von Software Engineering hat.</p>
</blockquote>
<pre><code>struct Number
{
    int value;
};
</code></pre>
<p>vs.</p>
<pre><code>class Number
{
    int value;

public:
    int getValue() const
    {
        return value;
    }

    void setValue(int newValue)
    {
        value = newValue;
    }
};
</code></pre>
</blockquote>
<p>Solange es in C++ keine Property-Schreibweise gibt, ziehe ich in der Regel (Ausnahme s.u.) letzteres aus mehreren Gründen trotz des Overheads vor:</p>
<p>1. Man kann ohne den restlichen Code umschreiben zu müssen auch noch nachträglich Bereichsprüfungen oder andere nötige Logik durchführen.<br />
2. Man kann die Zugriffe regeln (z.B. auf Setter verzichten, oder diese nur für abgeleitete Objekte freigeben - auch hier ziehe ich wegen Punkt 1. diese Schreibweise vor), und für gegenseitig abhängige Werte auch ein Interface erzwingen in dem diese als Gesamtheit gesetzt werden (Dann halt nicht mehr unbedingt über einen &quot;normalen&quot; Setter mit einem Parameter).</p>
<p>Bei Objekten die ausschließlich dem Datenaustausch dienen und keinerlei Logik aufweisen, verzichte ich aber auf Setter/Getter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295894</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 04 Feb 2013 09:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 09:43:57 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class Person
{
public:
   //...
   double Alter;
   double Gewicht;
   double Größe;
   //...
};
</code></pre>
</blockquote>
<p>Mehrere kleinere Anmerkungen:<br />
1. Bist du sicher das Alter ein double sein soll? Ich würde hier eher von einem Ganzzahltyp ausgehen (je nach Definition der Einheit gilt dies auch für Gewicht und Größe). Dir ist hoffentlich bewusst das du double-Werte nicht ohne ein delta sinnvoll vergleichen kannst. Wann möglich ziehe ich daher immer Integerwerte den Gleitkommawerten vor.</p>
<p>2. Nur um mal etwas aus der Praxis zu reden: Wenn es um ein echtes Programm geht, würde man in der Regel das Alter als berechneten Wert ansetzen, und statt dessen sein Geburtsdatum hinterlegen (Heute mag Max Mustermann 36 sein, in ein paar Tagen aber vielleicht schon 37).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295897</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 04 Feb 2013 09:43:57 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 10:20:23 GMT]]></title><description><![CDATA[<p>Ich lege dem Threadersteller nahe, sich zuerst mit den grundlegenden Dingen in C++ (Datentypen, Funktionen, Operatoren, etc.) auseinanderzusetzen und erst dann OOP lernen. Alles gleichzeitig machen bringt nichts. Damit kommst du nur durcheinander (wie jetzt) und sehr langsam voran.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295913</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295913</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Mon, 04 Feb 2013 10:20:23 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 10:21:42 GMT]]></title><description><![CDATA[<p>[Rewind] schrieb:</p>
<blockquote>
<p>Ich lege dem Threadersteller nahe, sich zuerst mit den grundlegenden Dingen in C++ (Datentypen, Funktionen, Operatoren, etc.) auseinanderzusetzen und erst dann OOP lernen.</p>
</blockquote>
<p>OOP ist leider jetzt das aktuelle Thema in seinem Kurs. Max ist daher dazu gezwungen, sich jetzt damit auseinanderzusetzen,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295915</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295915</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Mon, 04 Feb 2013 10:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 10:25:51 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>OOP ist leider jetzt das aktuelle Thema in seinem Kurs. Max ist daher dazu gezwungen, sich jetzt damit auseinanderzusetzen,</p>
</blockquote>
<p>Dann hat unser Max etwas falsch gemacht. Ich kann mir unmöglich vorstellen, dass der Prof in seinem Kurs irgendwelche OOP-Aufgaben aufgibt, ohne vorher void behandelt und erklärt zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295917</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Mon, 04 Feb 2013 10:25:51 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 10:28:39 GMT]]></title><description><![CDATA[<p>Das problem ist ja auch, dass man zwar anfangs sicherlich was über z.B. Gleitkommaungenauigkeit liest, das aber noch nicht einordnen kann und es somit recht flott wieder vergisst. Erst wenn man darüber wieder mal stolpert, erinnert man sich vielleicht und schafft Abhilfe oder sucht nach Alternativen.</p>
<p>Ich finde es eh immer verwerflich, wenn man als Programmieranfänger mit allen Sachen auf einmal zugebombt wird, man kann fast nichts richtig machen (in den Augen eingier hier im Forum).</p>
<p>Lernt man Funktion, wird einem dazu geraten OOP zu nutzen, lernt man OOP kommt direkt Polymorphie, Inheritance und Design-Patterns. Nutzt man auch das wird man angeschnauzt warum man keine generischen Designs mit STL, TMP und Boost nutzt.</p>
<p>Da sollten auch wir etwas Älteren/Erfahreneren mal dran denken...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295919</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 04 Feb 2013 10:28:39 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 11:19:18 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Ich finde es eh immer verwerflich, wenn man als Programmieranfänger mit allen Sachen auf einmal zugebombt wird, man kann fast nichts richtig machen (in den Augen eingier hier im Forum).</p>
</blockquote>
<p>Ist das eine alggemeine Aussage oder bezieht sich das auf Max? Beim Letzteren würde das nicht stimmen, da unser Bildungssystem noch nicht so schlecht ist, dass alles in der ersten Vorlesungssitzung/Unterrichtsstunde drankommt. Normalerweise hat man eine Woche Zeit um das Gelernte aufzunehmen, zu üben und zu wiederholen. Jemand, der das wirklich lernen will, schaut noch über den Tellerrand hinaus und nimmt sich die zwei Stunden Zeit zusätzlich, um mehr zu machen als in der Aufgabe verlangt ist. Das ist aber alles schon ein anderes Thema. Fakt ist für mich, dass der Threadersteller zuerst ein paar Sachen nachholen <strong>muss</strong>, wenn er das lernen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295931</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Mon, 04 Feb 2013 11:19:18 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 11:56:30 GMT]]></title><description><![CDATA[<p>Nein, das bezieht sich nicht auf Max oder indirekt auf ihn, sondern auf generell Anfänger.</p>
<p>Es geht mir eher um die Informationsflut, die hier im Forum auf Anfänger einprasselt und abverlangt wird.</p>
<p>Als ich damals angefangen habe mit C++ (vorher kannte ich ein klein bisschen Java), waren Arrays auch nur das was ich heute als C-Arrays kenne. An Vector und Konsorten hab ich damals nichtmals mein Zunkunfts-Ich denken lassen. Aber wenn hier im Forum jemand eine Frage stellt wird er sofort (unabhängig von seinem Skill) an den vector verwiesen. Das Ganze gibt es natürlich auch mit Zeigern und Smart-Pointern und auch im Klassendesign Bereich.</p>
<p>C++ ist eine Sprache, die viele Eigenarten hat (positive wie negative) anhand derer man sich ziemlich verrennen kann im Entwicklungs- und Lernzyklus.<br />
Ich denke, es muss nicht immer die perfekte C++-Lösung verlangt oder dann gepostet werden, sondern eventuell auch eine die etwas C-lastiger ist.</p>
<p>Denn absprechen kann das keiner, Fehlermeldungen was Templates angeht sind alles andere als gut zu verstehen (jedenfalls anfangs).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295941</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 04 Feb 2013 11:56:30 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Mon, 04 Feb 2013 13:01:55 GMT]]></title><description><![CDATA[<blockquote>
<p>Als ich damals angefangen habe mit C++ (vorher kannte ich ein klein bisschen Java), waren Arrays auch nur das was ich heute als C-Arrays kenne. An Vector und Konsorten hab ich damals nichtmals mein Zunkunfts-Ich denken lassen. Aber wenn hier im Forum jemand eine Frage stellt wird er sofort (unabhängig von seinem Skill) an den vector verwiesen. Das Ganze gibt es natürlich auch mit Zeigern und Smart-Pointern und auch im Klassendesign Bereich.</p>
<p>C++ ist eine Sprache, die viele Eigenarten hat (positive wie negative) anhand derer man sich ziemlich verrennen kann im Entwicklungs- und Lernzyklus.<br />
Ich denke, es muss nicht immer die perfekte C++-Lösung verlangt oder dann gepostet werden, sondern eventuell auch eine die etwas C-lastiger ist.</p>
</blockquote>
<p>Naja, wenn wer Frage ohne Context stellt, gehen wir davon aus, das es sich um ein praktisches Problem handelt! Und in der Praxis kommst du um &quot;Intelligente Container&quot; nicht herum. Wenn wer z.B. in produktiven Einsatz ohne triftigen Grund nen c Style Array nem Vector vorzieht, gehoert er ..... und es gibt nicht viele wirklich triftige Gründe !<br />
Leider richtet sich die Form der Bestrafung auch nach der Verfügbarkeit und vor allem den Kosten geschulten Personals <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>Geht es um das lernen / theorethische Probleme, dann wird das meistens auch deutlich gemacht. Und trozdem ist der hinweis dann immer noch angebracht, denn trotz allen gelernten soll der Weg auch in die richtige Richtung gehen oder ?</p>
<p>C-lastiger Code ist toll <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="🙂"
    /><br />
Mann will ihn nur nicht warten müssen ...<br />
Muss man trotzdem welchen schreiben in der Praxis, sollt man sich um Gotteswillen dessen bewusst sein (und es nur auf die notwendigen Teile berschränken).<br />
Das sollt eine unserer Kerntätigkeiten sein als Programmierer, abwägen zwischen Wartbarkeit und Performance!</p>
<p>Wie man mit den Antworten hier umgeht ist jedem seine Sache. Nur sollt man sich auch klar machen, für was dieses Forum gut sein soll !?<br />
Ist dieses Forum zum disskutieren von praktischen Problemstellungen, oder eher nen interaktives Nachschlagewerk, wo man Anfängern das Selbsstudium der Theorie abnimmt ... err erleichtert.</p>
<p>Ich selber sehe den praktischen Teil im Vordergrund, also sehe ich auch keinen Grund Verweisse auf die praktische Anwendungen zurueckzuhalten ....</p>
<p>Genauso gehe ich zuerst davon aus, das der durchschnittliche Forenuser zumindest die Grundlagen beherrscht. Sonst müssten hier alle in nem ganz anderen Stil schreiben ....</p>
<p>Das heisst nich, das Neulinge keine Fragen stellen dürfen/sollten, nur sind Verweisse auf Literatur und Grundlagen ausm Lehrbuch dann auch angebracht.</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295964</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Mon, 04 Feb 2013 13:01:55 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Thu, 07 Feb 2013 11:31:49 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>OOP ist leider jetzt das aktuelle Thema in seinem Kurs. Max ist daher dazu gezwungen, sich jetzt damit auseinanderzusetzen,</p>
</blockquote>
<p>Also ich kann mich daddy_felix nur anschließen.</p>
<p>Mein Dozent nimmt leider keine Rücksicht darauf, was die Schüler denken und schreitet immer und immer mehr voran mit dem Unterrichtsstoff. Zwar geht er auf ein oder zwei Fragen während des Unterrichts drauf ein, aber das war es auch schon.</p>
<p>Und OOP ist nun mal nun groß Thema.</p>
<p>Anbei ... bei mir hat es jetzt angefangen, dass neben der CPP Programmierung zusätzlich zwei Stunden in der Woche Netzwerktechnik dazu kommen.</p>
<p>Weiß einer von euch ein gutes Forum, das sich mit Netzwerktechnik behandelt??</p>
<p>Gruß Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296709</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Thu, 07 Feb 2013 11:31:49 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Thu, 07 Feb 2013 12:32:58 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Mein Dozent nimmt leider keine Rücksicht darauf, was die Schüler denken...</p>
</blockquote>
<p>Wenn ein Lehrer auf jeden und alles eingeht, so wird der Unterricht immer an den schlechtesten in der Klasse orientiert. Das andere Extrem ist zwar auch nicht gut, aber in der Regel wird ein Mittelweg eingeschlagen. Er muss eine Gewisse Stoffmenge in einer gewissen Zeit durchziehen, die Stoffmenge ist nicht frei von ihm vorgegeben.</p>
<p>Wenn du aber den Begriff Dozent nennst, gehe ich schon von einer weiterführenden Schule oder einem Studium aus. In dem Fall wird von einem Erwartet, das er in der Lage ist sich Informationen auch anderweitig aneignen zu können. Zudem kann man Klassenkameraden durchaus fragen oder mit diesen lernen.</p>
<p>silent_max schrieb:</p>
<blockquote>
<p>Weiß einer von euch ein gutes Forum, das sich mit Netzwerktechnik behandelt??</p>
</blockquote>
<p>Nein, aber die Bücher für Fachinformatiker sollen einen guten Überblick geben (Über die Qualität kann ich nicht viel sagen, aber schau dir mal das <a href="http://openbook.galileocomputing.de/it_handbuch/" rel="nofollow">OpenBook</a> von Galileo an, ob du da fündig wirst [Wird nach meinem Wissen von einigen Fachinformatier-Klassen verwendet]).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296735</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 07 Feb 2013 12:32:58 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Thu, 07 Feb 2013 13:33:25 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>[Wird nach meinem Wissen von einigen Fachinformatier-Klassen verwendet]).</p>
</blockquote>
<p>Ich mache meinen staatlich geprüften Elektrotechniker und nicht Informatiktechnik...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296760</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Thu, 07 Feb 2013 13:33:25 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Thu, 07 Feb 2013 18:16:39 GMT]]></title><description><![CDATA[<p>Hey Leute ... ich habe auf einmal voll die Blockade...</p>
<p>Ich wollte das Projekt ganz neu aufrollen und habe es nun wie folgt gemacht:</p>
<p>In der Header-Datei namens &quot;Klasse Person&quot; habe ich folgendes geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Person
{
private:
	string Vorname;
	string Nachname;
	int Geburtsdatum;
	string Haarfarbe;
	string Augenfarbe;
	int Größe;
};
</code></pre>
<p>Wie gesagt ... ich habe gerade voll die Blockade...</p>
<p>Und nun zu meinen Fragen:<br />
1.) Wie muss da der Konstruktor aussehen? Wie der Destruktor aussehen muss, kann ich mir ungefähr vorstellen ... Eben der Konstruktor mit einer Tilde davor...<br />
2.) Welche Methoden kann bzw. muss ich denn wie als public deklarieren, um auf die als private deklarierten Variablen zugreifen zu können??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296878</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Thu, 07 Feb 2013 18:16:39 GMT</pubDate></item><item><title><![CDATA[Reply to Erstes OOP Projekt - Erschaffung einer Instanz namens Person - gelöst on Thu, 07 Feb 2013 18:31:48 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>In der Header-Datei namens &quot;Klasse Person&quot; habe ich folgendes geschrieben:</p>
</blockquote>
<p>1. NIEMALS &quot;using namespace&quot; im Header!<br />
2. Ein wenig Lesen oder google-Suche sollte auch dir möglich sein. &quot;C++ Construktor&quot; wird definitiv treffer Liefern. Konstruktor und Destruktor heißen exakt wie die Klasse und es gibt keine Rückgabewerte (Sonst wie jede andere Methode). Ein Destruktor wird diese Klasse wohl kaum benötigen.<br />
3. Geburtsdatum als int? (Ich hoffe du hast eine sinnvolle Umrechnung, intern arbeiten viele Datumsdarstellungen als Integer, oder mit Zeitanteil auch double, das wird für dich aber wohl eher nocht nichts sein; Eher wäre hier ein eigener Typ mit Tag, Monat, Jahr wohl &quot;leichter&quot;).<br />
4. Im Klassischen Fall für jede Variable ein Getter und ein Setter. Wie steht doch im Thread.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296885</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 07 Feb 2013 18:31:48 GMT</pubDate></item></channel></rss>