<?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:oop</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:33+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:destruct&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:explanation&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:funcptr&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:interface&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:rtti&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:slicing&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:start&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:typeid&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:virtual&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:oop:vtable&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:oop:destruct&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:oop:destruct</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:destruct&amp;rev=1663868365</link>
        <description>Virtuelle Destruktoren

Wenn eine Klasse virtuelle Methoden enthält, sollte sie zusätzlich auch den Destruktor virtuell beschreiben.

Nehmen wir folgendes Szenario an:


#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

class Node
{
public:
  Node * Next;
  Node * Prev;

  char * UserData; 

  Node()
  : Next( NULL )
  , Prev( NULL )   
  {
    UserData = new char[500];
  }  
 
  ~Node()
  {
    printf( &quot;Destruiere Node - loesche UserData\n&quot; );
   
    delete [] UserData; 
  }
};

class MyNode : public No…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop:explanation&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:oop:explanation</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:explanation&amp;rev=1663868365</link>
        <description>Was ist objektorientierte Programmierung?

Mancher wird sich wundern, wieso objektorientierte Programmierung jetzt erst im Tutorial auftaucht, schließlich sind Klassen bereits bekannt und auch Information-Hiding (public, protected, private) ist bereits vorgekommen. Auch wenn man es von Lehrern an Schulen oder Professoren an den Hochschulen so beigebracht bekommt, dass dies Teile der objektorientierten Programmierung wären - alles Quatsch! Bisher tauchte im Tutorial noch überhaupt keine objektori…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop:funcptr&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:oop:funcptr</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:funcptr&amp;rev=1663868365</link>
        <description>Objektorientierung mit Funktionspointern

Den Objekttypen im Objekt zu speichern ist eine legitime Lösung um zur Laufzeit zu entscheiden, welche Funktion gerufen werden soll. Wenn das Programm erweitert wird, müssen jedoch alle Stellen gesucht werden, wo auf den Objekttypen abgefragt wird.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop:interface&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:oop:interface</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:interface&amp;rev=1663868365</link>
        <description>Interfaces

Interfaces nennt man Klassen, die ausschließlich aus virtuellen Funktionen bestehen und zwar ohne, dass es eine Implementierung gibt. Das bedeutet, dass diese Klasse soweit überhaupt nicht benutzbar ist.

pure virtual Methods

Methoden, die nicht implementiert werden, werden in C++ 'pure virtual' genannt. Andere Sprachen benutzen ein eigenes Schlüsselwort, häufig 'abstract', entsprechend spricht man auch von abstrakten Methoden.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop:rtti&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:oop:rtti</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:rtti&amp;rev=1663868365</link>
        <description>RunTime Type Information

Wir haben uns ja bereits angesehen, wie virtuelle Ableitungen funktionieren. Über die vTable können ja die einzelnen virtuellen Methoden angesprungen werden. Zusätzlich enthält jedes Objekt, dass über mindestens eine virtuelle Funktion verfügt, auch eine Typinformation, die zur Laufzeit abgerufen werden kann.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop:slicing&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:oop:slicing</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:slicing&amp;rev=1663868365</link>
        <description>Slicing

Unter Slicing versteht man ein Problem, dass bei CallByValue-Übergaben erhalten kann. Soll eine Klasseninstanz vollständig kopiert werden, so wird der Copy-Construktor aufgerufen. Im Normalfall ist dieser nicht implementiert, so dass byteweise kopiert wird.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop: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:oop:start</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:start&amp;rev=1663868365</link>
        <description>Objektorientierte Programmierung

Objektorientierte Programmierung ist ein Schlagwort in der Informatik, aber eine klare Abgrenzung, was objektorientierte Programmierung eigentlich ist, fällt selbst vielen professionellen Entwicklern schwer.

	*  Was ist objektorientierte Programmierung?
	*</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop:typeid&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:oop:typeid</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:typeid&amp;rev=1663868365</link>
        <description>Der typeid-Operator

Mit Hilfe des typeid-Operators erhält man von C++ eine Referenz auf eine std::type_info-Struktur. Es kann sein, dass RTTI je nach Compiler noch mit einem Compilerflag aktiviert werden muss.
Um die std::type_info-Struktur nutzen zu können, muss der C++-Header</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop: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:oop:virtual</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:virtual&amp;rev=1663868365</link>
        <description>virtuelle Methoden

Die Programmierung mit objekt(typ)-orientierten Techniken sind ein häufig auftretendes Muster in der Programmierung. Die Realisierung von VTables in C ist jedoch aufwendig und so besitzt C++ einige unterstützende Elemente, die dem Programmierer das Aufsetzen von objektorientierten Strukturen durch Automatisierung erleichtert. In C++ ist nicht festgelegt, wie virtuelle Funktionen umgesetzt werden, aber man kann nahezu davon ausgehen, dass C++-Compiler virtuelle Tabellen verwen…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:oop:vtable&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:oop:vtable</title>
        <link>http://update.proggen.org/doku.php?id=cpp:oop:vtable&amp;rev=1663868365</link>
        <description>Objekt-Typ orientierte Programmierung

Nachdem wir die Softwarearchitektur der Tierklasse mit dem Funktionszeiger so verbessern konnten, dass wir die Quelltexte, die einem Objekttyp zugehören, nicht mehr trennen müssen, haben wir nun das Problem, dass die Instanzen mit jeder objektorientierten Funktion weiter wächst. Tiere</description>
    </item>
</rdf:RDF>
