<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://update.proggen.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://update.proggen.org/feed.php">
        <title>proggen.org cpp:inheritance</title>
        <description></description>
        <link>http://update.proggen.org/</link>
        <image rdf:resource="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico" />
       <dc:date>2026-04-19T08:53:23+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:inheritance:def&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:inheritance:diamond&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:inheritance:multiple&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:inheritance:overwrite&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:inheritance:start&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:inheritance:using&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:inheritance:virtual&amp;rev=1663868365"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico">
        <title>proggen.org</title>
        <link>http://update.proggen.org/</link>
        <url>http://update.proggen.org/lib/tpl/proggenY/images/favicon.ico</url>
    </image>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:inheritance:def&amp;rev=1663868365">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cpp:inheritance:def</title>
        <link>http://update.proggen.org/doku.php?id=cpp:inheritance:def&amp;rev=1663868365</link>
        <description>Basiskonstruktoren rufen

Bisher haben unsere Klassen noch keine Konstruktoren. Das wollen wir nun nachholen:


class Tier
{
public:
  char Name[64];
  int  Fellfarbe;
  int  KrallenLaenge;
  int  AnzahlBeine;
 
  inline void GibNamenAus( void ) { printf( &quot;Ich heiße %s\n&quot;, Name );

  Tier( char const * name, int fellfarbe, int krallenLaenge, int beine )
    : Fellfarbe( fellfarbe )
    , KrallenLaenge( krallenLaenge )
    , AnzahlBeine( beine )
  {
    int laenge = strlen( name );
    if( laenge…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:inheritance:diamond&amp;rev=1663868365">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cpp:inheritance:diamond</title>
        <link>http://update.proggen.org/doku.php?id=cpp:inheritance:diamond&amp;rev=1663868365</link>
        <description>Das Diamant-Problem

Mehrfachvererbung ist ein gutes Werkzeug in C++, aber wie viele gute Werkzeuge können sie auch falsch verwendet werden. Das Diamant-Problem ist ein bekanntes Problem, dass man kennen muss, wenn man professionell programmieren möchte. Die Alternative ist, Sprachen zu verwenden, die Mehrfachvererbung untersagen aufgrund der Möglichkeit Mehrfachvererbung falsch zu verwenden. Beispiele hierfür sind die populären Sprachen Java und C#</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:inheritance:multiple&amp;rev=1663868365">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cpp:inheritance:multiple</title>
        <link>http://update.proggen.org/doku.php?id=cpp:inheritance:multiple&amp;rev=1663868365</link>
        <description>Mehrfachvererbung

Mehrfachvererbung ist ein erstes interessantes und hilfreiches Feature, dass C++ anderen, neueren Sprachen wie Java oder C# voraus hat, da diese Sprachen zwar Vererbung, aber keine Mehrfachvererbung bieten.

Wozu benötigt man Mehrfachvererbung?</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:inheritance:overwrite&amp;rev=1663868365">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cpp:inheritance:overwrite</title>
        <link>http://update.proggen.org/doku.php?id=cpp:inheritance:overwrite&amp;rev=1663868365</link>
        <description>Überschreiben von Funktionen

Im Kapitel über die allgemeinen Spielregeln zum Thema ableiten haben wir Gemeinsamkeiten von Objekten zusammengefasst und so eine Oberklasse dieser Objekte geschaffen. Anschließend haben wir Spezialisierungen kennen gelernt: Hier noch einmal der Quelltext dazu:</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:inheritance:start&amp;rev=1663868365">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cpp:inheritance:start</title>
        <link>http://update.proggen.org/doku.php?id=cpp:inheritance:start&amp;rev=1663868365</link>
        <description>Vererbung

Der Gedanke der Vererbung war mit der Erfindung von C++ nicht neu, aber C++ war die erste breit verwendete Sprache, die die Idee der Vererbung damit einem breiterem Publikum anbot, nämlich den reichlich vorhandenen C-Programmierern. 
Vererbung bedeutet nicht, dass gelöschte Objekte Informationen an nachfolgende Objekte weitergeben. Es dreht sich alles um die Datentypen.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:inheritance:using&amp;rev=1663868365">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cpp:inheritance:using</title>
        <link>http://update.proggen.org/doku.php?id=cpp:inheritance:using&amp;rev=1663868365</link>
        <description>Gleichnamige Member zweier Basisklassen

Es kann passieren, dass man von zwei Klassen erbt, die zwar nichts miteinander zu tun haben, aber dennoch gleichnamige Member haben. Stellen wir uns vor, dass eine benannte Liste erstellen wollen. Dabei soll sich die Liste wie eine Liste, aber auch wie ein String verhalten:</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:inheritance:virtual&amp;rev=1663868365">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-22T19:39:25+0200</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cpp:inheritance:virtual</title>
        <link>http://update.proggen.org/doku.php?id=cpp:inheritance:virtual&amp;rev=1663868365</link>
        <description>Virtuelle Ableitungen

Das Problem

Wir hatten uns zuvor das Diamant-Problem angesehen und festgestellt, dass eine durchdachte Klassenhierarchie viele Probleme lösen kann. Nun wollen wir uns ansehen, wie die Datentypen BluRayPlayer, FullHDTelevision und BluRayFullHDTelevision</description>
    </item>
</rdf:RDF>
