<?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>Ich habe mal eine Frage zu vererbung.</p>
<p>nehmen wir an ich habe eine Basic Klasse</p>
<p>class basic{</p>
<p>basic();</p>
<p>protected:</p>
<p>int zaehler;</p>
<p>int nenner;</p>
<p>};</p>
<p>jetzt will ich in der unterklasse</p>
<p>class unterklasse : public basic{</p>
<p>double zahl();</p>
<p>double erg;<br />
}</p>
<p>double unterklasse::zahl()</p>
<p>{</p>
<p>erg=zaehler/nenner;<br />
return erg;<br />
auf denn zaehler und nenner kann ich ja zugreifen<br />
}</p>
<p>aber wie kann ich in main dann die klasse zahl aufrufen ?</p>
<p>wenn ich die werte an die basicklasse übergebe?<br />
oder wie kann ich das erg an die basic klasse zurückgeben das diese das erg ausgeben kann.?</p>
<p>basic a(4,5);</p>
<p>danke</p>
<p>peer</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/148933/vererbung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 03:58:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/148933.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 31 May 2006 17:42:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to vererbung on Wed, 31 May 2006 17:42:54 GMT]]></title><description><![CDATA[<p>Ich habe mal eine Frage zu vererbung.</p>
<p>nehmen wir an ich habe eine Basic Klasse</p>
<p>class basic{</p>
<p>basic();</p>
<p>protected:</p>
<p>int zaehler;</p>
<p>int nenner;</p>
<p>};</p>
<p>jetzt will ich in der unterklasse</p>
<p>class unterklasse : public basic{</p>
<p>double zahl();</p>
<p>double erg;<br />
}</p>
<p>double unterklasse::zahl()</p>
<p>{</p>
<p>erg=zaehler/nenner;<br />
return erg;<br />
auf denn zaehler und nenner kann ich ja zugreifen<br />
}</p>
<p>aber wie kann ich in main dann die klasse zahl aufrufen ?</p>
<p>wenn ich die werte an die basicklasse übergebe?<br />
oder wie kann ich das erg an die basic klasse zurückgeben das diese das erg ausgeben kann.?</p>
<p>basic a(4,5);</p>
<p>danke</p>
<p>peer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069016</guid><dc:creator><![CDATA[peerffm]]></dc:creator><pubDate>Wed, 31 May 2006 17:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to vererbung on Wed, 31 May 2006 17:56:20 GMT]]></title><description><![CDATA[<p>Irgendwie hast du Klassen nicht verstanden.<br />
Man ruft keine Klassen auf, man erstellt Objekte von der Klasse, die dann untereinander kommunizieren. Wie sie untereinander kommunizieren das wird in der Klasse festgelegt.</p>
<blockquote>
<p>aber wie kann ich in main dann die klasse zahl aufrufen ?</p>
</blockquote>
<pre><code class="language-cpp">class basic
{ 
    public:
        basic(int z, int n)
          : zaehler(z), nenner(n)
        { }

        virtual double zahl() = 0;

    protected: 
       int zaehler; 
       int nenner; 
};

class unterklasse : public basic
{ 
    public:
        unterklasse(int z, int n)
            basic(z, n)
        { 
        }    

        virtual double zahl()
        {
            return zaehler / nenner;
        }
}

int main()
{
    basic object1 = unterklasse(5, 2);  **
    printf(object1.zahl());
}
</code></pre>
<p>Mit Code-Tags sieht das so viel besser aus.</p>
<p>** bin mir jetzt nicht mehr sicher ob das in C++ so geht ( bin halt Java-Programmierer )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069027</guid><dc:creator><![CDATA[DEvent]]></dc:creator><pubDate>Wed, 31 May 2006 17:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to vererbung on Wed, 31 May 2006 18:22:34 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5931">@DEvent</a>:<br />
Wenn das ganze wirklich polymorph sein soll brauchts hier Zeiger - das was Du gerade gemacht hast nennt man slicing (Du hast ein unterklasse erzeugt, und dessen basic-teil in ein basic kopiert, das unterklasse Objekt wird danach gelöscht)</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8866">@peerffm</a>:</p>
<pre><code class="language-cpp">basic* objekt1 = new unterklasse(5, 2);
cout &lt;&lt; objekt1-&gt;zahl();
delete objekt1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1069046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069046</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 31 May 2006 18:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to vererbung on Thu, 01 Jun 2006 08:22:49 GMT]]></title><description><![CDATA[<p>Wie gesagt ich war mir nicht sicher ob Vererbung in C++ ohne Zeigern funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069306</guid><dc:creator><![CDATA[DEvent]]></dc:creator><pubDate>Thu, 01 Jun 2006 08:22:49 GMT</pubDate></item><item><title><![CDATA[Reply to vererbung on Thu, 01 Jun 2006 08:28:33 GMT]]></title><description><![CDATA[<p>Vererbung selber hat mit Zeigern nichts zu tun. Allerdings greifen die virtuellen Methoden nur, wenn du über Zeiger oder Referenzen arbeitest (bei &quot;einfachen&quot; Objekten hast du das erwähnte &quot;slicing&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069316</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 01 Jun 2006 08:28:33 GMT</pubDate></item><item><title><![CDATA[Reply to vererbung on Thu, 01 Jun 2006 09:28:34 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Vererbung selber hat mit Zeigern nichts zu tun. Allerdings greifen die virtuellen Methoden nur, wenn du über Zeiger oder Referenzen arbeitest (bei &quot;einfachen&quot; Objekten hast du das erwähnte &quot;slicing&quot;).</p>
</blockquote>
<p>Was in dem Fall noch nicht mal funktionieren würde, da die Basisklasse pure-virtual ist und daher keine Instanzen davon existieren können.</p>
<pre><code class="language-cpp">basic object1 = unterklasse(5, 2);
</code></pre>
<p>Hätte der Compiler bereits angemahnt.</p>
<p>Und auch dieses</p>
<pre><code class="language-cpp">printf(object1.zahl());
</code></pre>
<p>wird nicht funktionieren, da printf ein char* als erstes Argument erwartet und object.zahl() ein double liefert.</p>
<p>Tip: Code, den man postet einfach mal kurz durch einen Complizierer jagen <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/1069386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069386</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Thu, 01 Jun 2006 09:28:34 GMT</pubDate></item><item><title><![CDATA[Reply to vererbung on Thu, 01 Jun 2006 14:20:19 GMT]]></title><description><![CDATA[<p>Mano seid ihr pingelig, bin froh das ich in Java programmiere.<br />
Das Prinzip sollte doch aber klar sein oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1069627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1069627</guid><dc:creator><![CDATA[DEvent]]></dc:creator><pubDate>Thu, 01 Jun 2006 14:20:19 GMT</pubDate></item></channel></rss>