<?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[Konstruktoren und Methoden bei Vererbung]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hätte da eine Frage zu volgendem code</p>
<pre><code>class VersendbareEinheit{

   const string Absender;
   const string Empfänger;

public:

   VersendbareEinheit (const string, const string);

   const string getAbsender();
   const string getEmpfänger();

   virtual void versenden()=0;
}

class Brief: public versendbareEinheit{

public:

   Brief (string ??? , string ???);    // string Absender, string Empfänger

   void versenden()
   {
      cout &lt;&lt; getAbsender() &lt;&lt; getEmpänger();
   }
}
</code></pre>
<p>1. Kann ich in &quot;Brief&quot; einfach die get-Funktionen benutzen ohne das &quot;void versenden&quot; virtual ist. Oder wäre es besser mit virtual?</p>
<p>2. Der Konstruktor Brief soll die Parameter Absender und Empfänger erhalten. Diese werden ja Vererbt, sind aber private. Kann ich diese nun einfach verwenden wie im //Komentar, bzw. auf was muss ich achten?</p>
<p>Wäre super wenn mir jemand etwas Hilfe geben könnte, dass ich ein wenig besser durchsteige.</p>
<p>Vielen danke und Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330803/konstruktoren-und-methoden-bei-vererbung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 22:50:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330803.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Jan 2015 11:21:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstruktoren und Methoden bei Vererbung on Mon, 26 Jan 2015 11:21:00 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hätte da eine Frage zu volgendem code</p>
<pre><code>class VersendbareEinheit{

   const string Absender;
   const string Empfänger;

public:

   VersendbareEinheit (const string, const string);

   const string getAbsender();
   const string getEmpfänger();

   virtual void versenden()=0;
}

class Brief: public versendbareEinheit{

public:

   Brief (string ??? , string ???);    // string Absender, string Empfänger

   void versenden()
   {
      cout &lt;&lt; getAbsender() &lt;&lt; getEmpänger();
   }
}
</code></pre>
<p>1. Kann ich in &quot;Brief&quot; einfach die get-Funktionen benutzen ohne das &quot;void versenden&quot; virtual ist. Oder wäre es besser mit virtual?</p>
<p>2. Der Konstruktor Brief soll die Parameter Absender und Empfänger erhalten. Diese werden ja Vererbt, sind aber private. Kann ich diese nun einfach verwenden wie im //Komentar, bzw. auf was muss ich achten?</p>
<p>Wäre super wenn mir jemand etwas Hilfe geben könnte, dass ich ein wenig besser durchsteige.</p>
<p>Vielen danke und Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439802</guid><dc:creator><![CDATA[Mutzi]]></dc:creator><pubDate>Mon, 26 Jan 2015 11:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren und Methoden bei Vererbung on Mon, 26 Jan 2015 11:42:52 GMT]]></title><description><![CDATA[<p>Mutzi schrieb:</p>
<blockquote>
<p>1. Kann ich in &quot;Brief&quot; einfach die get-Funktionen benutzen ohne das &quot;void versenden&quot; virtual ist. Oder wäre es besser mit virtual?</p>
</blockquote>
<p>Die Funktion ist immer virtual, wenn sie in der Basis als virtual deklariert wurde. Mit C++11 würde ich override nutzen, ansonsten virtual hinschreiben, damit man beim Lesen dran erinnert wird.</p>
<pre><code class="language-cpp">class Brief: 
...
void versenden() override
</code></pre>
<p>Mutzi schrieb:</p>
<blockquote>
<p>2. Der Konstruktor Brief soll die Parameter Absender und Empfänger erhalten. Diese werden ja Vererbt, sind aber private. Kann ich diese nun einfach verwenden wie im //Komentar, bzw. auf was muss ich achten?</p>
</blockquote>
<p>Die Member werden ererbt, die Parameter im Konstruktor nicht.<br />
Wenn du die Werte also weiterreichen möchtest, sollten in dem Konstruktor der erbenden Klasse die gleichen Parameter stehen, wie in der Basis.<br />
Allerdings solltest du in beiden Konstruktoren const string&amp; oder einfach string verwenden. const string ist sinnlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439806</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 26 Jan 2015 11:42:52 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren und Methoden bei Vererbung on Mon, 26 Jan 2015 12:05:50 GMT]]></title><description><![CDATA[<p>Super ok vielen danke für die Antwort. Aber warum läßt man den das &quot;const&quot; weg, wäre es sonst doppelt gemoppelt? <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>
<pre><code>class VersendbareEinheit{

   const string Absender;
   const string Empfänger;

public:

   VersendbareEinheit (string, string);

   const string getAbsender();
   const string getEmpfänger();

   virtual void versenden()=0;
}

class Brief: public versendbareEinheit{

public:

   Brief (string , string );   

   virtual void versenden()override
   {
      cout &lt;&lt; getAbsender() &lt;&lt; getEmpänger();
   }
}
</code></pre>
<p>Darf ich noch ne Frage anhängen <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="😃"
    /> Hätte da noch eine weitere Vererbung</p>
<pre><code>class EinschreibeBrief: public Brief{
private:
   const int eLabel;

public:
   EinschreibeBrief( string , string, int):Brief (???,???), eLable (e){}   // Brief(Absender, Empänger)

   virtual void versenden() override :Brief{
     cout &lt;&lt; getAbsender() &lt;&lt; getEmpänger() &lt;&lt; eLabel;
   }
}
</code></pre>
<p>3. Wie mache ich das override Syntaktisch wenn ich nun das &quot;versenden&quot; der Basiskalsse Brief nutze. Ist das so ok?</p>
<p>4. Wenn ich den Basisinitialisierer von Brief verwenden möchte, geht das dann so?..ich bin leider noch nicht so fit dit der Element und Basisinitialisierung <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/2439809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439809</guid><dc:creator><![CDATA[Mutzi]]></dc:creator><pubDate>Mon, 26 Jan 2015 12:05:50 GMT</pubDate></item><item><title><![CDATA[Reply to Konstruktoren und Methoden bei Vererbung on Mon, 26 Jan 2015 12:25:03 GMT]]></title><description><![CDATA[<p>Mutzi schrieb:</p>
<blockquote>
<p>Super ok vielen danke für die Antwort. Aber warum läßt man den das &quot;const&quot; weg, wäre es sonst doppelt gemoppelt? <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>Die Parameter im Konstruktor sind ganz normale Parameter wie bei jeder anderen Funktion auch. Sie haben nichts mit den Menbervariablen zu tun. Sie müssen Namen haben, wenn man sie verwenden will. Diese Namen kann man dann bei ??? einsetzen. Bei strings und anderen &quot;großen&quot; Datentypen ist es sinnvoll, nur eine Referent zu übergeben, statt den Wert zu kopieren. Das macht man mit const string&amp;.</p>
<p>Mutzi schrieb:</p>
<blockquote>
<p>3. Wie mache ich das override Syntaktisch wenn ich nun das &quot;versenden&quot; der Basiskalsse Brief nutze.</p>
</blockquote>
<p>Keine Ahnung was du meinst. Du implementierst hier genauso eine eigene Funktion wie in Brief auch, verwendest also die gleiche Syntax.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2439812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2439812</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 26 Jan 2015 12:25:03 GMT</pubDate></item></channel></rss>