<?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[Vererbung]]></title><description><![CDATA[<p>Hallo Leute <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>hoffentlich gehts euch gut bei der Hitze !</p>
<p>Zuerst mal mein Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class cBasis
{
	private:

		string itsA;
		string itsB;

	public:

		cBasis(){}
		cBasis(string a, string b)
		{
			itsA = a;
			itsB = b;
		}

		~cBasis(){}

	void zusammensetzen()
	{
		cout &lt;&lt; itsA &lt;&lt; itsB;
	}

};

class cUnter:public cBasis
{

	private:

		string itsA;
		string itsB;

	public:

 		cUnter(){}
		cUnter(string a, string b)
		{
			itsA = a;
			itsB = b;
		}
		~cUnter(){}
};

void main()
{
	cBasis basis(&quot;aaaaaaaaaaaaaa &quot;,&quot;bbbbbbbbbbbbbb&quot;);
	cUnter unter(&quot;cccccccccccccc &quot;,&quot;dddddddddddddd&quot;);

	 basis.zusammensetzen();
	 cout &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
	 unter.zusammensetzen();	
}
</code></pre>
<p>Hier mal meine Frage ich hab 2 einfache Klassen cBasis und die abgeleitete cUnter.<br />
Die in cBasis enthaltene Fnkt. zusammensetzen greift auf prif. Variablen der cBasis zu, nach der Vererbung hat doch cUnter ihre eigene Fnkt. zusammensetzen.<br />
Den Konstruktor von cBasis kann ich ja net mitvererben drum hab ich cUnter ihren eigenen implementiert.<br />
Auch die priv. Variablen.<br />
Führe ich den Code aus wird mir aber nur die zusammensetzen von cBasis ausgeführt.<br />
CUnter wird irgendwie übergangen.<br />
Wisst ihr wie ich das richtig 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>Danke schon mal vorab <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>
<p>ShadowEater <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="😉"
    /> <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="😉"
    /> <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/topic/154115/vererbung</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 20:24:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154115.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 24 Jul 2006 15:02:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 15:02:41 GMT]]></title><description><![CDATA[<p>Hallo Leute <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>hoffentlich gehts euch gut bei der Hitze !</p>
<p>Zuerst mal mein Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class cBasis
{
	private:

		string itsA;
		string itsB;

	public:

		cBasis(){}
		cBasis(string a, string b)
		{
			itsA = a;
			itsB = b;
		}

		~cBasis(){}

	void zusammensetzen()
	{
		cout &lt;&lt; itsA &lt;&lt; itsB;
	}

};

class cUnter:public cBasis
{

	private:

		string itsA;
		string itsB;

	public:

 		cUnter(){}
		cUnter(string a, string b)
		{
			itsA = a;
			itsB = b;
		}
		~cUnter(){}
};

void main()
{
	cBasis basis(&quot;aaaaaaaaaaaaaa &quot;,&quot;bbbbbbbbbbbbbb&quot;);
	cUnter unter(&quot;cccccccccccccc &quot;,&quot;dddddddddddddd&quot;);

	 basis.zusammensetzen();
	 cout &lt;&lt; endl &lt;&lt; endl &lt;&lt; endl;
	 unter.zusammensetzen();	
}
</code></pre>
<p>Hier mal meine Frage ich hab 2 einfache Klassen cBasis und die abgeleitete cUnter.<br />
Die in cBasis enthaltene Fnkt. zusammensetzen greift auf prif. Variablen der cBasis zu, nach der Vererbung hat doch cUnter ihre eigene Fnkt. zusammensetzen.<br />
Den Konstruktor von cBasis kann ich ja net mitvererben drum hab ich cUnter ihren eigenen implementiert.<br />
Auch die priv. Variablen.<br />
Führe ich den Code aus wird mir aber nur die zusammensetzen von cBasis ausgeführt.<br />
CUnter wird irgendwie übergangen.<br />
Wisst ihr wie ich das richtig 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>Danke schon mal vorab <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>
<p>ShadowEater <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="😉"
    /> <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="😉"
    /> <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/1103246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103246</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:02:41 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 15:30:43 GMT]]></title><description><![CDATA[<p>zusammensetzen gehört ja auch zu cBasis. cUnter hat ja die Funktion nicht. Logischerweise werden die Strings der basisklasse ausgegeben.<br />
Du kannst doch aber den Konstruktor der Basisklasse in der Initialisierungsliste des Konstruktors der abgeleiteten Klasse aufrufen, und so die Variablen der Basisklasse initialisieren.</p>
<pre><code class="language-cpp">cUnter(string a, string b) : cBasis (a,b), itsA(a), itsB(b) {}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1103266</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103266</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:30:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 15:32:23 GMT]]></title><description><![CDATA[<p>Dann kannst du aber ItsA und ItsB auch gleich weglassen in der Unterklasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103268</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:32:23 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 15:33:47 GMT]]></title><description><![CDATA[<p>Wer weiß was er damit vor hat. <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/1103269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103269</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:33:47 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 15:35:17 GMT]]></title><description><![CDATA[<p>Ok stimmt.<br />
Aber dann würd ich eher noch zusammensetzen() überladen. Denn jenachdem was er vorhat ist am Ende nicht mehr das selbe in Base und Unterklasse, sprich Zusammensetzen gibt nicht die gewünschten Member aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103270</guid><dc:creator><![CDATA[THX 1138]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:35:17 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 15:53:49 GMT]]></title><description><![CDATA[<p>Danke Leute <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>jetzt funzt das <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> !</p>
<blockquote>
<p>zusammensetzen gehört ja auch zu cBasis. cUnter hat ja die Funktion nicht.</p>
</blockquote>
<p>Ja klar daß zusammensetzen zu cBasis gehört ich hab nur gedacht wenn ichs vererb gehörts genausogut zu cUnter!</p>
<p>Wenn ich also eine Fnkt. vererbe und diese Fnkt. in der Basisklasse auf priv. Variablen zugreift muss ich in der Initialisierungsliste der abgeleiteten Klasse immer den Konstruktor der Basisklasse aufrufen und damit die privaten Variablen der Basisklasse initialisieren damit ich in der abgeleiteten Klasse Zugriff habe <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>Thx <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 />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103287</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 15:57:53 GMT]]></title><description><![CDATA[<p>Nicht damit du Zugriff darauf hast (den hast du nämlich nicht), sondern nur um die Variablen der Basisklasse auch zu initialisieren.<br />
Wenn du uns sagst, was du eigentlich vorhast können wir dir bestimmt besser helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103292</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 24 Jul 2006 15:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 16:07:44 GMT]]></title><description><![CDATA[<p>Naja eigentlich will ich nur was über Vererbung lernen, hab au n Buch, das auch gar nicht so schlecht ist aber auch beim besten Buch bleiben eben manchmal noch Fragen offen.<br />
Hmmm das mit dem Zugriff den ich nicht hab is mir grad klar geworden.</p>
<p>Stimmt ganz generell folgender Gedankengang :</p>
<p>- In main instanziiere ich die beiden Obj. cBasis und cUnter<br />
- beiden Obj. übergebe ich die benötigten Werte<br />
- in den Klassen mache ich nur die Vorlagen meiner späteren Obj.</p>
<p>bis hierhin ist mir alles soweit klar aber warum muss ich im Konstruktor der Unterklasse die Variablen der BasisKlasse initialisieren ich übergeb doch die Werte in main an die Objekte <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><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="🙂"
    /> ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103301</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 24 Jul 2006 16:07:44 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 18:23:25 GMT]]></title><description><![CDATA[<p>Dir ist vielleicht nicht aufgefallen, dass itsA und itsB in der Unterklasse eigentlich zweimal vorhanden sind. Einmal als private Elemente die du von der Basisklasse geerbt hast, auf die du somit in cUnter keinen Zugriff hast und die in zusammensetzen() ausgegeben werden. cUnter deklariert diese Variablen unter gleichen Namen noch einmal und diese initialisierst du im Konstruktor von cUnter. Hier mal dein Beispiel leicht abgeändert um das zu demonstrieren.</p>
<pre><code class="language-cpp">class cBasis
{
    protected: // protected, damit ich in cUnter Zugriff habe
        string itsA;
        string itsB;
    public:
        cBasis(){}
        cBasis(string a, string b)
       {
            itsA = a;
            itsB = b;
        }
        ~cBasis(){}
    void zusammensetzen()
    {
        cout &lt;&lt; itsA &lt;&lt; itsB;
    }
};

class cUnter:public cBasis
{
    private:
        string itsA;
        string itsB;
    public:
        cUnter(){}
        cUnter(string a, string b)
        {
// hier werden itsA und itsB von cUnter initialisiert
            itsA = a;
            itsB = b;
// hier werden itsA und itsB von cBasis initialisiert
            cBasis::itsA = a;
            cBasis::itsB = b;
        }
        ~cUnter(){}
};
</code></pre>
<p>Den gleichen Effekt erreichst du beim Aufruf des Basisklassenkonstruktors im Konstruktor von cUnter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103341</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 24 Jul 2006 18:23:25 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung on Mon, 24 Jul 2006 18:20:00 GMT]]></title><description><![CDATA[<p>Oh Mann vielen Dank Braunstein, ich meld mich morgen nochmal!<br />
Vielleicht können wir ja mal chatten oder so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
<p>Bye<br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1103371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1103371</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 24 Jul 2006 18:20:00 GMT</pubDate></item></channel></rss>