<?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[Klassenvererbung]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich brauche hilfe bei einer Laboraufgabe. Die Aufgabenstellung hat keinen Sinn, ich weiß nicht warum unser Prof. so was fragt. Ich würde mich freuen wenn jemand mir schon bisschen weiterhelfen könnte:</p>
<p>Aufgabe:</p>
<p>Einfach Vererbung<br />
Definieren Sie eine Klasse Alpha mit<br />
einem privaten int-Datenelement x<br />
einem Standardkonstruktor<br />
einem Konstruktor mit 1 Parameter<br />
einer Methode print()</p>
<p>Leiten Sie von dieser Klasse public eine Klasse Beta ab mit<br />
einem weiteren int-Datenelement y<br />
einem Standardkonstruktor<br />
einem Konstruktor mit 2 Parametern<br />
einer Methode print()</p>
<p>Der erste Parameter des Konstruktors von Beta soll zum Aufruf des Konstruktors von Alpha verwendet werden, um die geerbten Daten zu initialisieren.<br />
Die Methode print() in Beta soll x und y anzeigen. Dies geschieht durch einen Aufruf der geerbten print()-Funktion Alpha::print() und nachfolgender Ausgabe des neuen Datenelements y.<br />
Anmerkung: Wäre x in Alpha public, könnte auch direkt zugegriffen werden.<br />
Dies wäre aber nicht sinnvoll, da es zu einer verstärkten Kopplung der beiden Klassen führt. Zum Zugriff auf geerbte Daten sind also vorzugsweise geerbte Methoden zu verwenden.</p>
<p>2.1 Ermitteln Sie im Hauptprogramm mit Hilfe des sizeof-Operators die Größe von Objekten der Klassen Alpha und Beta und rufen Sie deren print()- Methoden auf.</p>
<p>2.2 Fügen Sie in die Klasse Beta ein weiteres Datenelement x beliebigen Typs ein (z.B. int), erweitern Sie die Konstruktoren entsprechend und ermitteln Sie erneut die Größe von Objekten der Klasse Beta.<br />
Was schließen Sie aus dem Ergebnis?</p>
<p>Machen Sie nun x in alpha public und versuchen Sie von Beta::print() darauf zuzugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128820/klassenvererbung</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 22:09:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128820.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Dec 2005 14:22:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:22:38 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich brauche hilfe bei einer Laboraufgabe. Die Aufgabenstellung hat keinen Sinn, ich weiß nicht warum unser Prof. so was fragt. Ich würde mich freuen wenn jemand mir schon bisschen weiterhelfen könnte:</p>
<p>Aufgabe:</p>
<p>Einfach Vererbung<br />
Definieren Sie eine Klasse Alpha mit<br />
einem privaten int-Datenelement x<br />
einem Standardkonstruktor<br />
einem Konstruktor mit 1 Parameter<br />
einer Methode print()</p>
<p>Leiten Sie von dieser Klasse public eine Klasse Beta ab mit<br />
einem weiteren int-Datenelement y<br />
einem Standardkonstruktor<br />
einem Konstruktor mit 2 Parametern<br />
einer Methode print()</p>
<p>Der erste Parameter des Konstruktors von Beta soll zum Aufruf des Konstruktors von Alpha verwendet werden, um die geerbten Daten zu initialisieren.<br />
Die Methode print() in Beta soll x und y anzeigen. Dies geschieht durch einen Aufruf der geerbten print()-Funktion Alpha::print() und nachfolgender Ausgabe des neuen Datenelements y.<br />
Anmerkung: Wäre x in Alpha public, könnte auch direkt zugegriffen werden.<br />
Dies wäre aber nicht sinnvoll, da es zu einer verstärkten Kopplung der beiden Klassen führt. Zum Zugriff auf geerbte Daten sind also vorzugsweise geerbte Methoden zu verwenden.</p>
<p>2.1 Ermitteln Sie im Hauptprogramm mit Hilfe des sizeof-Operators die Größe von Objekten der Klassen Alpha und Beta und rufen Sie deren print()- Methoden auf.</p>
<p>2.2 Fügen Sie in die Klasse Beta ein weiteres Datenelement x beliebigen Typs ein (z.B. int), erweitern Sie die Konstruktoren entsprechend und ermitteln Sie erneut die Größe von Objekten der Klasse Beta.<br />
Was schließen Sie aus dem Ergebnis?</p>
<p>Machen Sie nun x in alpha public und versuchen Sie von Beta::print() darauf zuzugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936606</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936606</guid><dc:creator><![CDATA[Jippi]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:22:38 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:24:22 GMT]]></title><description><![CDATA[<p>Ich kam nur so weit:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Alpha
{

private:
	int x;

public:
	Alpha();
	Alpha(int n);

	void print()
	{
		cout &lt;&lt; x;
	}
};

class Beta : public Alpha
{
private:
	int y;
public:
	Beta();
	Beta(int m, int k);

	void print()
	{
		cout &lt;&lt;  &quot;x: &quot; &lt;&lt; Alpha::print &lt;&lt; endl;
		cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl;
	}

};

int main()
{
	Alpha a(3);
	cout &lt;&lt; sizeof(a) ;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/936610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936610</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:31:10 GMT]]></title><description><![CDATA[<p>Als Einstieg:</p>
<pre><code class="language-cpp">class Beta : public Alpha {
private:
    int y;
public:
    Beta(int y_=0, int x=0) : y(y_), Alpha(x) {}  //Nennt sich Elementinitialiser, schließlich musst du die Basisklasse noch initialisieren

    void print() const {
        cout &lt;&lt;  &quot;x: &quot; &lt;&lt; Alpha::print();
        cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl;
    }

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/936611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936611</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:26:13 GMT]]></title><description><![CDATA[<p>du hast Recht. Aber ich habe mir schon Gedanken gemacht. Du kannst ja trotzdem mir helfen oder <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>
]]></description><link>https://www.c-plusplus.net/forum/post/936617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936617</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:26:13 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:27:49 GMT]]></title><description><![CDATA[<p>yeah kennste den &gt;&gt; ~ <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><a href="http://www.fun-soft.de/Download/ebooks/c%2B%2Bin21tagen/kap11.html" rel="nofollow">http://www.fun-soft.de/Download/ebooks/c%2B%2Bin21tagen/kap11.html</a></p>
<p>les dir des ma durch danach kannst es!!! Die seite bzw. das Buch is eh goiL!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936620</guid><dc:creator><![CDATA[PRIEST]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:27:49 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:30:15 GMT]]></title><description><![CDATA[<p>Hatte ich vergessen:</p>
<pre><code class="language-cpp">class Alpha {
private:
    int x;

public:
    Alpha(int n=0) : x(n) {}  //gleiches Spiel

    void print() const {
        cout &lt;&lt; x;
    }
};
</code></pre>
<p>Das mit dem sizeof - Operator machst du ja richtig, der Rest dürfte kein Problem sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936624</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:30:15 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:29:30 GMT]]></title><description><![CDATA[<p>kannst du lesen? wenn ja, lies dir einfach mal die Aufgabe durch und mach' Schritt für Schritt das, was dort verlangt wurde. (aktuell geht deine Lösung bis zum ersten &quot;und&quot; in Teilaufgabe 2.1 ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/936626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936626</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:29:30 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Wed, 07 Dec 2005 14:30:37 GMT]]></title><description><![CDATA[<p>OK. Danke ich werde es jetzt durchlesen. Wenn ich fragen habe komme ich nochmal: <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/936631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/936631</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Wed, 07 Dec 2005 14:30:37 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 09:27:16 GMT]]></title><description><![CDATA[<p>Ich habe die Vererbungsgeschichte durchgelesen, aber ich habe eins nicht verstanden:</p>
<pre><code class="language-cpp">class Alpha { 
private: 
    int x; 

public: 
    Alpha(int n=0) : x(n) {}  //&lt;= Wozu :x(n), vertsehe ich nicht so ganz

    void print() const { 
        cout &lt;&lt; x; 
    } 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/937084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937084</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Thu, 08 Dec 2005 09:27:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 09:30:58 GMT]]></title><description><![CDATA[<p>n wird ja mit 0 init. und isses wie x(0)</p>
<p>oder net ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937089</guid><dc:creator><![CDATA[PRIEST]]></dc:creator><pubDate>Thu, 08 Dec 2005 09:30:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 09:34:12 GMT]]></title><description><![CDATA[<p>jippi schrieb:</p>
<blockquote>
<p>Ich habe die Vererbungsgeschichte durchgelesen, aber ich habe eins nicht verstanden:</p>
<pre><code class="language-cpp">class Alpha { 
private: 
    int x; 

public: 
    Alpha(int n=0) : x(n) {}  //&lt;= Wozu :x(n), vertsehe ich nicht so ganz
    
    
    void print() const { 
        cout &lt;&lt; x; 
    } 
};
</code></pre>
</blockquote>
<p>also ich habe die Beta Klasse bisschen geändert, weil er noch eine Fehlermeldung brachte.</p>
<pre><code class="language-cpp">class Alpha { 
private: 
    int x; 

public: 
    Alpha(int n=0) : x(n) {}  

    int print() const { 
        cout &lt;&lt; x; 
	return x;
    } 
};

class Beta : public Alpha { 
private: 
    int y; 
public: 
    Beta(int y_=0, int x=0) : y(y_), Alpha(x) {}  //Nennt sich Elementinitialiser, schließlich musst du die Basisklasse noch initialisieren 

    void print() const { 
        cout &lt;&lt;  &quot;x: &quot; &lt;&lt; Alpha::print(); 
        cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl; 
    } 

}; 

int main()
{
	Alpha a(4);
	cout &lt;&lt; sizeof(a) ;

	return 0;
}
</code></pre>
<p>Als ausgabe kommt jetzt 4 raus.Und Ein Integer wert ist ja 4 - byte groß. Es sollte stimmen. Aber wie gesagt musste ich die printfunktion in der Klasse Alpha ändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937093</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Thu, 08 Dec 2005 09:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 09:45:41 GMT]]></title><description><![CDATA[<p>Du hast sie falsch geändert, entweder du machst es so:</p>
<pre><code class="language-cpp">//Alpha print   
void print() const {
  cout &lt;&lt;  &quot;x: &quot; &lt;&lt; x;
}

//Beta print
void print() const {
  Alpha::print();
  cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl;
}
</code></pre>
<p>oder so:</p>
<pre><code class="language-cpp">//Alpha print   
int print() const {
  return x;
}

//Beta print
void print() const {
  cout &lt;&lt;  &quot;x: &quot; &lt;&lt; Alpha::print() &lt;&lt; endl;
  cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl;
}
</code></pre>
<p>Zu deiner Frage: Das ist ein Elementinitializer, der initialisert x mit n.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937103</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 08 Dec 2005 09:45:41 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 09:54:48 GMT]]></title><description><![CDATA[<p>Es sieht jetzt so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Alpha { 
private: 
    int x; 

public: 
    Alpha(int n=0) : x(n) {}  

    int print() const {  
		return x;
    } 
};

class Beta : public Alpha { 
private: 
    int y; 
public: 
    Beta(int y_=0, int x=0) : y(y_), Alpha(x) {}  //Nennt sich Elementinitialiser, schließlich musst du die Basisklasse noch initialisieren 

    void print() const { 
        cout &lt;&lt;  &quot;x: &quot; &lt;&lt; Alpha::print() &lt;&lt; endl; 
        cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl; 
    } 

}; 

int main()
{
	Alpha a(0);
	cout &lt;&lt; &quot;Sizeof Alpha: &quot; &lt;&lt; sizeof(a) &lt;&lt; endl;
	Beta b(0);
	cout &lt;&lt; &quot;Sizeof Beta: &quot; &lt;&lt; sizeof(b) &lt;&lt; endl;

	a.print();
	b.print();

	return 0;
}
</code></pre>
<p>Als Ausgabe bekomme ich:</p>
<pre><code>Sizeof Alpha: 4
Sizeof Beta: 8
x: 0
y: 0
Press any key to continue
</code></pre>
<p>Wie kann ich jetzt die Werte von x und y ändern?</p>
<p>Diesen Elementinitialiser verstehe ich einfach nicht.<br />
Ich vermute mal:</p>
<pre><code class="language-cpp">Beta(int y_=0, int x=0) : y(y_), Alpha(x) {}  //y(y_) sorgt dafür, dass das erste element y ist und Alpha(x) sorgt dafür dass das zweite element x ist oder?
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/937109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937109</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Thu, 08 Dec 2005 09:54:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 10:11:51 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie kann ich jetzt die Werte von x und y ändern?</p>
</blockquote>
<p>Indem du folgendes einbaust:</p>
<pre><code class="language-cpp">//das muss in Alpha rein:
void setX(int x_) { x = x_; }
int getX() const { return x; }
</code></pre>
<pre><code class="language-cpp">//das muss in Beta rein:
void setY(int y_) { y = y_; }
int getY() const { return y; }
</code></pre>
<p>Zu deiner main Methode</p>
<pre><code class="language-cpp">int main() {
    Alpha a(1); //x wird hiermit 1
    cout &lt;&lt; &quot;Sizeof Alpha: &quot; &lt;&lt; sizeof(a) &lt;&lt; endl;
    //Beta b(0);  //y gibst du mit 0 an, und x ist defaultmäßig 0
    Beta b(5,4);  //y=5 und x=4
    cout &lt;&lt; &quot;Sizeof Beta: &quot; &lt;&lt; sizeof(b) &lt;&lt; endl;

    b.setY(7);  // jetzt ist y 7 
    a.print();
    b.print();

    return 0;
}
</code></pre>
<p>Elementinitializer: <a href="http://tutorial.schornboeck.net/initliste.htm" rel="nofollow">http://tutorial.schornboeck.net/initliste.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/937123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937123</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 08 Dec 2005 10:11:51 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 10:19:48 GMT]]></title><description><![CDATA[<p>Ok Danke, dass du mir weitergeholfen hast. Ich melde mich wieder wenn ich fragen habe <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>
]]></description><link>https://www.c-plusplus.net/forum/post/937134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937134</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Thu, 08 Dec 2005 10:19:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 11:11:56 GMT]]></title><description><![CDATA[<p>Soweit klappt alles ganz gut. Aber bei der Teilaufgabe 2.2 verlangt er, dass ich den Datenelement x &quot;public&quot; machen soll und über Beta::print() darauf zuzugreifen. Ich habe es nicht so ganz verstanden wie ich es realisieren soll.</p>
<pre><code class="language-cpp">class Alpha {    

public:
	int x; //&lt;= ist jetzt public

    Alpha(int n=0) : x(n) {}  //Initialisierungsliste von Alpha

    int print() const {  
		return x;
    } 

};

class Beta : public Alpha { 
private: 
    int y; 
	int x; //Teilaufgabe 2.2 Ergänzung von Klasse Beta um Datenelement x.
public: 
    Beta(int y_=0, int x=0) : y(y_), Alpha(x) {}  //Initialisierungsliste von Beta

    void print() const { 
        cout &lt;&lt;  &quot;x: &quot; &lt;&lt; Alpha::print() &lt;&lt; endl; //&lt;= ????und hier????
        cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl; 
    } 
}; 

int main()
{
	Alpha a(1);
	cout &lt;&lt; &quot;Sizeof Alpha: &quot; &lt;&lt; sizeof(a) &lt;&lt; endl;
	Beta b(5,3);
	cout &lt;&lt; &quot;Sizeof Beta: &quot; &lt;&lt; sizeof(b) &lt;&lt; endl;
	a.print();
	b.print();

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/937165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937165</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Thu, 08 Dec 2005 11:11:56 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 11:20:01 GMT]]></title><description><![CDATA[<p>Ich wußte gar nicht, daß man eine Membervariable so überladen kann <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="😉"
    /><br />
Egal - auf das Element aus der Basisklasse greifst du mit Alpha::x zu:</p>
<pre><code class="language-cpp">void Beta::print() const
{
  cout&lt;&lt;&quot;Alpha-Anteil:&quot;&lt;&lt;endl;
  cout&lt;&lt;&quot;x:&quot;&lt;&lt;Alpha::x&lt;&lt;endl;

  cout&lt;&lt;&quot;Beta-Anteil:&quot;&lt;&lt;endl;
  cout&lt;&lt;&quot;x:&quot;&lt;&lt;x&lt;&lt;endl&lt;&lt;&quot;y:&quot;&lt;&lt;y&lt;&lt;endl;
}
</code></pre>
<p>PS: Die Umdefinition des Rückgabewertes von print() ist übrigens ganz schlechtes Design - die erstgenannte Variante von GPC ist wohl besser:</p>
<pre><code class="language-cpp">//Alpha print   
void print() const {
  cout &lt;&lt;  &quot;x: &quot; &lt;&lt; x &lt;&lt; endl;
}

//Beta print
void print() const {
  Alpha::print();
  cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/937171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937171</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 08 Dec 2005 11:20:01 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 11:48:31 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10318">@CStoll</a>: Wenigstens du hast's gemerkt <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="🙂"
    /> Sonst hat keiner meinen faux pas moniert...</p>
<p>@Jippi: Du solltest dir mal folgendes durchlesen: <a href="http://tutorial.schornboeck.net/oop.htm" rel="nofollow">http://tutorial.schornboeck.net/oop.htm</a><br />
Dire fehlt viel Stoff aus dem Bereich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937196</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937196</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 08 Dec 2005 11:48:31 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenvererbung on Thu, 08 Dec 2005 12:15:31 GMT]]></title><description><![CDATA[<p>Ok. Es hat geklappt. Danke an euch vielmals. Das Code sieht jetzt so aus und sollte jetzt stimmen. Jetzt kann ich die Aufgabe 3 machen:)</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Alpha {    

public:

	int x;
    Alpha(int n=0) : x(n) {}  //Initialisierungsliste von Alpha

    void print() const { 
		cout &lt;&lt;  &quot;x: &quot; &lt;&lt; x &lt;&lt; endl; 
	} 
};

class Beta : public Alpha { 
private: 
    int y; 
	int x; //Teilaufgabe 2.2 Ergänzung von Klasse Beta um Datenelement x.
public: 
    Beta(int y_=0, int x=0, int x_=0) : y(y_), Alpha(x),x(x_) {}  //Initialisierungsliste von Beta

    /*void print() const { 
		Alpha::print(); 
		cout &lt;&lt;  &quot;y: &quot; &lt;&lt; y &lt;&lt; endl; 
	} */
	void Beta::print() const { 
	cout&lt;&lt;&quot;Alpha-Anteil:&quot;&lt;&lt;endl; 
	cout&lt;&lt;&quot;x:&quot;&lt;&lt;Alpha::x&lt;&lt;endl; 

	cout&lt;&lt;&quot;Beta-Anteil:&quot;&lt;&lt;endl; 
	cout&lt;&lt;&quot;x:&quot;&lt;&lt;x&lt;&lt;endl&lt;&lt;&quot;y:&quot;&lt;&lt;y&lt;&lt;endl;
	}
}; 

int main()
{
	Alpha a(1);
	cout &lt;&lt; &quot;Sizeof Alpha: &quot; &lt;&lt; sizeof(a) &lt;&lt; endl;
	Beta b(5,3,8);
	cout &lt;&lt; &quot;Sizeof Beta: &quot; &lt;&lt; sizeof(b) &lt;&lt; endl;

	b.print();

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/937222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937222</guid><dc:creator><![CDATA[jippi]]></dc:creator><pubDate>Thu, 08 Dec 2005 12:15:31 GMT</pubDate></item></channel></rss>