<?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[Übung zu Klassen]]></title><description><![CDATA[<p>Hallo miteinander,</p>
<p>ich bin Student der Informatik an einer Uni und bin gerade dabei C++ zu lernen. Bei den &quot;Klassen&quot; habe ich jetzte erste Probleme mit dem Verständnis. Leider gibt es zu unseren Übungen von der Uni bisher keine Lösungsansätze.</p>
<p>Könnt ihr somit meine Lösung kommentieren und mir ggf. Tipps geben? Wäre super <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>
<p>Gegebener Code:</p>
<pre><code>class C_Mitglied :{
private:
string ID;
bool Beitragbezahlt;
public:
string Vorname;
string Nachname;
};
</code></pre>
<p>Aufgabenstellung:<br />
Ergänze die Klasse um die folgenden Anforderungen.<br />
- Standardkonstruktor soll vorhanden sein, der die ID auf &quot;0&quot; setzt und Beitragbezahlt auf false setzt.<br />
- Es soll ein überladener Konstruktor vorhaden sein, um die</p>
<p>- ID, Vornamen, Nachnamen und Beitragbezahlt als Parameter aufzunehmen.<br />
- öffentliche Methode um das Attribut Beitragbezahlt zu lesen und zu schreiben<br />
- öffentlich Methode um das Attribut ID zu lesen.</p>
<p>Deklariere eine neue Klasse C_Ehrenmitglied, die von C_Mitglied alle Attribute und Methoden als public erbt. Die neue Klasse soll als zusätzliches public-Attribut bool beitragsfrei besitzen, welches durch seinen überladenen Konstruktor auf true gesetzt wird. Dieser überladene Konstruktor soll ID, Vornamen, Nachnamen als Parameter aufnehmen und beitragbezahlt auf false setzen.</p>
<p>Mein Lösungsvorschlag:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class C_Mitglied :{
	private:
		string ID;
		bool Beitragbezahlt;

	public:
		C_Mitglied();
		C_Mitglied(string pID, string pVorname, string pNachname, bool pBeitragbezahlt);
		string Vorname;
		string Nachname;
		bool get_Beitragbezahlt(){return Beitragbezahlt;};
		void set_Beitragbezahlt(bool pBeitragbezahlt){Beitragbezahlt=pBeitragbezahlt;};
		string get_ID(){return ID;};
};

C_Mitglied::C_Mitglied()
{
	ID=&quot;0&quot;;
	Beitragbezahlt=false;
}

C_Mitglied::C_Mitglied(string pID, string pVorname, string pNachname, bool pBeitragbezahlt)
{
	ID=pID;
	Vorname=pVorname;
	Nachname=pNachname;
	Beitragbezahlt=pBeitragbezahlt;
}

class C_Ehrenmitglied : public C_Mitglied
{
	public:
		bool beitragsfrei;
		C_Ehrenmitglied(string pID, string pVorname, string pNachname);
};

C_Ehrenmitglied::C_Ehrenmitglied(string pID, string pVorname, string pNachname) : C_Mitglied(pID, pVorname, pNachname, false)
{
	beitragsfrei=true;
}
</code></pre>
<p>Gruß.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/336115/übung-zu-klassen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 17:56:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/336115.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 03 Jan 2016 17:32:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Übung zu Klassen on Sun, 03 Jan 2016 17:32:38 GMT]]></title><description><![CDATA[<p>Hallo miteinander,</p>
<p>ich bin Student der Informatik an einer Uni und bin gerade dabei C++ zu lernen. Bei den &quot;Klassen&quot; habe ich jetzte erste Probleme mit dem Verständnis. Leider gibt es zu unseren Übungen von der Uni bisher keine Lösungsansätze.</p>
<p>Könnt ihr somit meine Lösung kommentieren und mir ggf. Tipps geben? Wäre super <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>
<p>Gegebener Code:</p>
<pre><code>class C_Mitglied :{
private:
string ID;
bool Beitragbezahlt;
public:
string Vorname;
string Nachname;
};
</code></pre>
<p>Aufgabenstellung:<br />
Ergänze die Klasse um die folgenden Anforderungen.<br />
- Standardkonstruktor soll vorhanden sein, der die ID auf &quot;0&quot; setzt und Beitragbezahlt auf false setzt.<br />
- Es soll ein überladener Konstruktor vorhaden sein, um die</p>
<p>- ID, Vornamen, Nachnamen und Beitragbezahlt als Parameter aufzunehmen.<br />
- öffentliche Methode um das Attribut Beitragbezahlt zu lesen und zu schreiben<br />
- öffentlich Methode um das Attribut ID zu lesen.</p>
<p>Deklariere eine neue Klasse C_Ehrenmitglied, die von C_Mitglied alle Attribute und Methoden als public erbt. Die neue Klasse soll als zusätzliches public-Attribut bool beitragsfrei besitzen, welches durch seinen überladenen Konstruktor auf true gesetzt wird. Dieser überladene Konstruktor soll ID, Vornamen, Nachnamen als Parameter aufnehmen und beitragbezahlt auf false setzen.</p>
<p>Mein Lösungsvorschlag:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class C_Mitglied :{
	private:
		string ID;
		bool Beitragbezahlt;

	public:
		C_Mitglied();
		C_Mitglied(string pID, string pVorname, string pNachname, bool pBeitragbezahlt);
		string Vorname;
		string Nachname;
		bool get_Beitragbezahlt(){return Beitragbezahlt;};
		void set_Beitragbezahlt(bool pBeitragbezahlt){Beitragbezahlt=pBeitragbezahlt;};
		string get_ID(){return ID;};
};

C_Mitglied::C_Mitglied()
{
	ID=&quot;0&quot;;
	Beitragbezahlt=false;
}

C_Mitglied::C_Mitglied(string pID, string pVorname, string pNachname, bool pBeitragbezahlt)
{
	ID=pID;
	Vorname=pVorname;
	Nachname=pNachname;
	Beitragbezahlt=pBeitragbezahlt;
}

class C_Ehrenmitglied : public C_Mitglied
{
	public:
		bool beitragsfrei;
		C_Ehrenmitglied(string pID, string pVorname, string pNachname);
};

C_Ehrenmitglied::C_Ehrenmitglied(string pID, string pVorname, string pNachname) : C_Mitglied(pID, pVorname, pNachname, false)
{
	beitragsfrei=true;
}
</code></pre>
<p>Gruß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2481602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2481602</guid><dc:creator><![CDATA[itstud]]></dc:creator><pubDate>Sun, 03 Jan 2016 17:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to Übung zu Klassen on Sun, 03 Jan 2016 19:46:29 GMT]]></title><description><![CDATA[<p>Das sieht ja schon ganz vernünftig aus. Eigentlich gibts da kaum etwas zu kritisieren. Da ihr ja scheinbar gerade erst mit Klassen angefangen seit war möglicherweise noch gar nicht alles dran was ich jetzt als kleine Verbesserungen vorschlage:</p>
<p>- Steht da wirklich ein Doppeltpunkt nach <code>class C_Mitglied</code> ? Der darf da nicht hin.<br />
- Alle Memberfunktionen die nur lesen und keine Membervariablen verändern sollten als const markiert sein.<br />
- Große Objekte wie std::string übergibt man am besten als konstante Referenz. Als Rückgabewert bei get_ID() könnte man auch eine konstante Referenz nehmen.<br />
- Persönlicher Geschmack: Bei Konstruktoren die nur ein paar Member initialisieren ziehe ich eine <a href="http://en.cppreference.com/w/cpp/language/initializer_list" rel="nofollow">Initializer List</a> dem einfachen Zuweisen, so wie du es jetzt machst, vor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2481633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2481633</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Sun, 03 Jan 2016 19:46:29 GMT</pubDate></item><item><title><![CDATA[Reply to Übung zu Klassen on Sun, 03 Jan 2016 20:14:30 GMT]]></title><description><![CDATA[<p>sebi707 schrieb:</p>
<blockquote>
<p>- Persönlicher Geschmack: Bei Konstruktoren die nur ein paar Member initialisieren ziehe ich eine <a href="http://en.cppreference.com/w/cpp/language/initializer_list" rel="nofollow">Initializer List</a> dem einfachen Zuweisen, so wie du es jetzt machst, vor.</p>
</blockquote>
<p>Das geht über Geschmacksfragen hinaus. In vielen Fällen ist es schließlich ohne Initializer List gar nicht möglich, ein Objekt zu initialisieren, wenn es keinen Standardkonstruktor hat. Und die direkte Initialisierung ist immer mindestens gleich gut wie die Kombination aus Standardinitialisierung und Zuweisung, fast immer sogar besser. Daher würde ich empfehlen, sich diese Technik sofort anzugewöhnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2481639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2481639</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 03 Jan 2016 20:14:30 GMT</pubDate></item></channel></rss>