<?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[Vererbte Klassen Überladen miteinander ausgeben?!]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>wir haben eine Hausübung bekommen, die ich auch bis jetzt ohne Probleme geschaft habe, nur, bei der letzten überladung von cout hab ich gerade wirklich 0 (NULL) Plan wie ich das nun anstellen soll.</p>
<p>das Programm vom Aufbau her wurde von unserem Prof. vorgegeben (also Funktionen, Parameter usw.)</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Date
{
	int day, month, year;
public:
		Date(int d, int m, int y)
		{
			day=d;
			month=m;
			year=y;
		}
		Date()
		{
			day=0;
			month=0;
			year=0;
		}
		void setDATE(int d, int m, int y)
		{
			if(d&gt;0)day=d;
			if(m&gt;0)month=m;
			if(y&gt;0)year=y;
		}
		friend ostream &amp; operator &lt;&lt; (ostream &amp;os, Date &amp;D)
		{
			return os&lt;&lt;D.day&lt;&lt;&quot;.&quot;&lt;&lt;D.month&lt;&lt;&quot;.&quot;&lt;&lt;D.year&lt;&lt;endl;
		}
		 friend istream&amp; operator&gt;&gt;(istream&amp; is, Date&amp; D)
		{
			int x;
			cout&lt;&lt;&quot;Day: &quot;;
			cin&gt;&gt;x;
			D.day=x;
			cout&lt;&lt;endl;
			cout&lt;&lt;&quot;Month: &quot;;
			cin&gt;&gt;x;
			D.month=x;
			cout&lt;&lt;endl;
			cout&lt;&lt;&quot;Year: &quot;;
			cin&gt;&gt;x;
			D.year=x;
			cout&lt;&lt;endl;
			return is;
		}

};
class Person
{
protected:
	Date dob;
	int s; //0 = &quot;female&quot;   1 = &quot;male&quot;
private:
	char *name, *nation;
public:
	Person(char *n, char *nat, int h, int d, int m, int y)
	{
		name=new char[strlen(n)];
		nation=new char[strlen(nat)];
		strcpy(name, n);
		strcpy(nation, nat);
		s=h;
		dob.setDATE(d,m,y);
	}
	Person()
	{
		name=new char[2];
		nation=new char[2];
		strcpy(name, &quot; &quot;);
		strcpy(nation, &quot; &quot;);
		s=1;
		dob.setDATE(0,0,0);
	}
	friend ostream &amp; operator &lt;&lt; (ostream &amp;os, Person &amp;P)
	{
		return os&lt;&lt;&quot;Name: &quot;&lt;&lt;P.name&lt;&lt;&quot;  Nation: &quot;&lt;&lt;P.nation&lt;&lt;&quot;  Geschlecht: &quot;&lt;&lt;P.s&lt;&lt;endl;
	}
};
class Student:public Person
{
	Date mathreculation;
	char *Schule;
	int status;
public:
	Student(char *name, char *nation, int ges, char * shool, int d, int m, int y, int stat) //d,my Date of mathreculation
	{
		Person::Person(name, nation, ges, d, m, y);
		Schule=new char[strlen(shool)];
		strcpy(Schule, shool);
		status=stat;
	}
	int setDOB(int d, int m, int y)
	{
		dob.setDATE(d,m,y);	
	}
	void setDOM(int d, int m, int y)
	{
		mathreculation.setDATE(d,m,y);
	}
	void setSEX(int x)
	{
		Person::s=x;
	}
	friend ostream &amp; operator &lt;&lt; (ostream &amp;os, Student &amp;S)
	{

	}
};

int main()
{
 	Date Me(10,5,1992);
	Person Ich(&quot;Max Mustermann&quot;, &quot;Österreich&quot;, 1, 11, 11, 1992);
	//cin&gt;&gt;Me;   -&gt; geht
	cout&lt;&lt;Me;
	cout&lt;&lt;Ich;
	Student I (&quot;Max Mustermann&quot;, &quot;Österreich&quot;, 1, &quot;htl&quot;, 10, 5, 1992, 1);
	cout&lt;&lt;I;
	system(&quot;Pause&quot;);

}
</code></pre>
<p>in Zeile 105 sollte ich ausgeben: Name, Nationalität, Geb Datum (dob), Schule (kleinste Problem), status (dito), dom (austrittsdatum, glaub ich ^^) und geschlecht (s)</p>
<p>problem ist, ich habe keine ahnung wie ich das mache <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>wenn es evtl nur eine oder zwei Zeilen wären, wäre es supa wenn ihr mir die hinschreiben könnt, und evtl wenn ihr zeit dazu habt ganz ganz kurz erläutert wie das geht <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>Vielen Dank im Vorraus</p>
<p>Fanati_c</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/261710/vererbte-klassen-überladen-miteinander-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 03:42:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/261710.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 22 Feb 2010 18:49:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbte Klassen Überladen miteinander ausgeben?! on Mon, 22 Feb 2010 18:49:46 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>wir haben eine Hausübung bekommen, die ich auch bis jetzt ohne Probleme geschaft habe, nur, bei der letzten überladung von cout hab ich gerade wirklich 0 (NULL) Plan wie ich das nun anstellen soll.</p>
<p>das Programm vom Aufbau her wurde von unserem Prof. vorgegeben (also Funktionen, Parameter usw.)</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Date
{
	int day, month, year;
public:
		Date(int d, int m, int y)
		{
			day=d;
			month=m;
			year=y;
		}
		Date()
		{
			day=0;
			month=0;
			year=0;
		}
		void setDATE(int d, int m, int y)
		{
			if(d&gt;0)day=d;
			if(m&gt;0)month=m;
			if(y&gt;0)year=y;
		}
		friend ostream &amp; operator &lt;&lt; (ostream &amp;os, Date &amp;D)
		{
			return os&lt;&lt;D.day&lt;&lt;&quot;.&quot;&lt;&lt;D.month&lt;&lt;&quot;.&quot;&lt;&lt;D.year&lt;&lt;endl;
		}
		 friend istream&amp; operator&gt;&gt;(istream&amp; is, Date&amp; D)
		{
			int x;
			cout&lt;&lt;&quot;Day: &quot;;
			cin&gt;&gt;x;
			D.day=x;
			cout&lt;&lt;endl;
			cout&lt;&lt;&quot;Month: &quot;;
			cin&gt;&gt;x;
			D.month=x;
			cout&lt;&lt;endl;
			cout&lt;&lt;&quot;Year: &quot;;
			cin&gt;&gt;x;
			D.year=x;
			cout&lt;&lt;endl;
			return is;
		}

};
class Person
{
protected:
	Date dob;
	int s; //0 = &quot;female&quot;   1 = &quot;male&quot;
private:
	char *name, *nation;
public:
	Person(char *n, char *nat, int h, int d, int m, int y)
	{
		name=new char[strlen(n)];
		nation=new char[strlen(nat)];
		strcpy(name, n);
		strcpy(nation, nat);
		s=h;
		dob.setDATE(d,m,y);
	}
	Person()
	{
		name=new char[2];
		nation=new char[2];
		strcpy(name, &quot; &quot;);
		strcpy(nation, &quot; &quot;);
		s=1;
		dob.setDATE(0,0,0);
	}
	friend ostream &amp; operator &lt;&lt; (ostream &amp;os, Person &amp;P)
	{
		return os&lt;&lt;&quot;Name: &quot;&lt;&lt;P.name&lt;&lt;&quot;  Nation: &quot;&lt;&lt;P.nation&lt;&lt;&quot;  Geschlecht: &quot;&lt;&lt;P.s&lt;&lt;endl;
	}
};
class Student:public Person
{
	Date mathreculation;
	char *Schule;
	int status;
public:
	Student(char *name, char *nation, int ges, char * shool, int d, int m, int y, int stat) //d,my Date of mathreculation
	{
		Person::Person(name, nation, ges, d, m, y);
		Schule=new char[strlen(shool)];
		strcpy(Schule, shool);
		status=stat;
	}
	int setDOB(int d, int m, int y)
	{
		dob.setDATE(d,m,y);	
	}
	void setDOM(int d, int m, int y)
	{
		mathreculation.setDATE(d,m,y);
	}
	void setSEX(int x)
	{
		Person::s=x;
	}
	friend ostream &amp; operator &lt;&lt; (ostream &amp;os, Student &amp;S)
	{

	}
};

int main()
{
 	Date Me(10,5,1992);
	Person Ich(&quot;Max Mustermann&quot;, &quot;Österreich&quot;, 1, 11, 11, 1992);
	//cin&gt;&gt;Me;   -&gt; geht
	cout&lt;&lt;Me;
	cout&lt;&lt;Ich;
	Student I (&quot;Max Mustermann&quot;, &quot;Österreich&quot;, 1, &quot;htl&quot;, 10, 5, 1992, 1);
	cout&lt;&lt;I;
	system(&quot;Pause&quot;);

}
</code></pre>
<p>in Zeile 105 sollte ich ausgeben: Name, Nationalität, Geb Datum (dob), Schule (kleinste Problem), status (dito), dom (austrittsdatum, glaub ich ^^) und geschlecht (s)</p>
<p>problem ist, ich habe keine ahnung wie ich das mache <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>wenn es evtl nur eine oder zwei Zeilen wären, wäre es supa wenn ihr mir die hinschreiben könnt, und evtl wenn ihr zeit dazu habt ganz ganz kurz erläutert wie das geht <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>Vielen Dank im Vorraus</p>
<p>Fanati_c</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1859715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1859715</guid><dc:creator><![CDATA[Fanati_C]]></dc:creator><pubDate>Mon, 22 Feb 2010 18:49:46 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbte Klassen Überladen miteinander ausgeben?! on Mon, 22 Feb 2010 19:44:24 GMT]]></title><description><![CDATA[<p>Schau doch mal in <code>Person</code> nach. Dort wird ja fast genau das gemacht, was du brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1859746</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1859746</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 22 Feb 2010 19:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbte Klassen Überladen miteinander ausgeben?! on Mon, 22 Feb 2010 19:52:29 GMT]]></title><description><![CDATA[<p>ja, aber wie bring ich das runter? kapier grad nix <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1859749</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1859749</guid><dc:creator><![CDATA[Fanati_C]]></dc:creator><pubDate>Mon, 22 Feb 2010 19:52:29 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbte Klassen Überladen miteinander ausgeben?! on Mon, 22 Feb 2010 19:55:59 GMT]]></title><description><![CDATA[<p>Dan lies den Stoff nochmal durch, wenn du keine Ahung von Programmierung hast.. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Und sonst lass es bleiben. Hausaufgaben machen für dich nicht. Vor allem nicht, wenn sie so extrem einfach sind..</p>
<p>btw:<br />
Wenn der Code von deinem Prof. ist, dann sollte man ihn aber auch hauen..<br />
Wenn ich mich an Halloween als Codestück verkleiden müsste, dann würde das wahrscheinlich in etwa so wie der Code da aussehen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1859751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1859751</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 22 Feb 2010 19:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbte Klassen Überladen miteinander ausgeben?! on Mon, 22 Feb 2010 20:00:26 GMT]]></title><description><![CDATA[<p>eh, ich kann Programmieren, hatte ne 1 ja, aber ich komm net drauf mehr wie ich das da runter bring, außerdem war ich an dem tag mit vererbung etc net da....</p>
<p>außerdem muss ich ja nicht alles auf anhieb kapiern &lt;.&lt; bin ja auch nur ein mensch und net perfekt, wenns für dich einfach is schön, ich habs noch net gmacht....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1859757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1859757</guid><dc:creator><![CDATA[Fanati_C]]></dc:creator><pubDate>Mon, 22 Feb 2010 20:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbte Klassen Überladen miteinander ausgeben?! on Mon, 22 Feb 2010 20:14:32 GMT]]></title><description><![CDATA[<p>Ok, tut mir leid. Habe etwas forsch reagiert. Kommen eben sehr viele Leute, die wollen, dass wir ihre Hausaufgaben machen..</p>
<p>Aber der Code ist auch so Mist.</p>
<pre><code class="language-cpp">Student(char *name, char *nation, int ges, char * shool, int d, int m, int y, int stat) //d,my Date of mathreculation
		:
	Person ( name, nation, ges, d, m, y ) // richtig, sonst wird die Basisklasse gar nicht mit den korrekten Parametern initialisiert
    {
        //Person::Person(name, nation, ges, d, m, y); // das ist bullshit. Da wird nicht die Basiklasse initialisiert, sondern ein anderes Objekt..
        Schule=new char[strlen(shool)]; // Mist, da nirgends Speicher frei gegeben wird.. (gilt auch bei den anderen strings..)
        strcpy(Schule, shool);
        status=stat;
    }
</code></pre>
<p>Ausgeben kannst du den Stutenten, indem du eine Referenz auf ihn in eine Referenz auf eine Person castest. Anderst kommst du an den Namen und Nation nicht ran.. (Üblicherweise würde man da getter haben, damit man drauf zugreifen kann, aber so, wie das da gewollt ist ist das einfach nur Mist..)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1859764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1859764</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 22 Feb 2010 20:14:32 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbte Klassen Überladen miteinander ausgeben?! on Mon, 22 Feb 2010 20:49:24 GMT]]></title><description><![CDATA[<p>danke dir habs gelöst</p>
<p>ich sag nur eins</p>
<p>Memberinitialisierungsliset <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/1859781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1859781</guid><dc:creator><![CDATA[Fanati_C]]></dc:creator><pubDate>Mon, 22 Feb 2010 20:49:24 GMT</pubDate></item></channel></rss>