<?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:class</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:35+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:construct&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:def&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:destruct&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:init&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:inline&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:member&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:private&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:start&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:static&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:class:this&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:class:construct&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:class:construct</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:construct&amp;rev=1663868365</link>
        <description>Objekte konstruieren

Bisher haben wir noch nichts Neues gesehen im Vergleich zu Strukturen, wie sie in C verwendet werden. Eine C-Struktur ist lediglich eine Beschreibung von Daten. Ein Instanz einer Struktur ist damit erstmal nur einige Daten, die so interpretiert werden, wie es die Struktur beschreibt.
Die Daten werden damit aber nicht initialisiert.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class: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:class:def</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:def&amp;rev=1663868365</link>
        <description>Eine Klasse definieren

Sobald man in C++ programmiert, ist jede Struktur bereits eine Klasse.


struct Tier
{
  int  AnzahlBeine;
};

Eine Klasse wird jedoch in der Regel mit class deklariert:


class Tier
{
public:
  int  AnzahlBeine;
};

Das Keywort</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class: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:class:destruct</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:destruct&amp;rev=1663868365</link>
        <description>Destruktor

Im Projekt, das wir uns im Kapitel zuvor angesehen haben (Information Hidding: [Projektdownload]), gibt es ein Problem. Schauen wir uns das Hauptprogramm nochmals an:


int main( void )
{
  ...
  myFile = new File( &quot;example.txt&quot; );
  ... 
  myFile-&gt;Close();
  delete myFile;
  ...
}</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class:init&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:class:init</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:init&amp;rev=1663868365</link>
        <description>Die Initialisierungsliste

Kommen wir nochmals zu den Beispielen mit den graphischen Objekten. Konstruieren wir ein Rechteck, dass einen Startpunkt links oben und einen Endpunkt rechts unten hat.

Einen Punkt haben wir bereits als Klasse beschrieben:</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class:inline&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:class:inline</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:inline&amp;rev=1663868365</link>
        <description>Inline Methoden

In der klassenorientierten Programmierung kommt es häufig vor, dass eine Methode nur aus einer einzigen Anweisung besteht. Dies geschieht besonders oft bei sogenannten Gettern. 
Hierbei ist der Aufwand, die Funktion zu rufen aufwendiger als das, was die Funktion eigentlich leistet.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class:member&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:class:member</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:member&amp;rev=1663868365</link>
        <description>Was ist ein Member?

Ein Member - auf Deutsch 'Mitglied' - gehört zu einem überordneten Bereich. Dieser Bereich ist in diesem Fall eine Klasse. 

Membervariablen

Eine Instanz einer Klasse kann Variablen enthalten - genauso wie eine Struktur. Diese Variablen nennt man entsprechend Membervariable:</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class:private&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:class:private</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:private&amp;rev=1663868365</link>
        <description>Information Hiding

Auf Member von C-Strukturen darf jeder Zugreifen. Das ist aber oftmals gar nicht so gewünscht. Stellen wir uns vor, wir schreiben eine Klasse, die den Zugriff auf eine Datei verwaltet. Diese Klasse verwendet ein File-Handle.


struct File
{
  FILE       * Handle;
  char const * Filename;
  unsigned int Size;
};</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class: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:class:start</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:start&amp;rev=1663868365</link>
        <description>Was ist klassenbasiertes Programmieren?

Im C-Kurs wurden bereits Strukturen behandelt. Schauen wir uns eine Struktur an, die ein Tier beschreibt:

struct Tier
{
  int  AnzahlBeine;
};

Im großen Ganzen haben wir hiermit bereits eine Klasse beschrieben. Denn ein Tier ist eine Klasse von Begriffen, wie beispielsweise Ameise, Katze, Mensch, Vogel. Die drei Tierarten haben eigentlich nicht viel miteinander zu tun, aber das Wort 'Tier' klassifiziert sie im Gegensatz zu einer anderen Klasse von Leben…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class:static&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:class:static</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:static&amp;rev=1663868365</link>
        <description>Statische Member

Statische Member-Variablen

Statische Member-Variablen sind im Prinzip nichts anderes als globale Variablen in C, bis auf die Tatsachen, dass sie im Namensraum einer Klasse liegen und nur einmalig im Speicher repräsentiert werden.</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:class:this&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:class:this</title>
        <link>http://update.proggen.org/doku.php?id=cpp:class:this&amp;rev=1663868365</link>
        <description>Der this-Pointer

Innerhalb einer Methode kann an auf die eigenen Member direkt mit ihrem Namen zugreifen. Muss man allerdings eine Funktion (oder Methode einer anderen Klasseninstanz) rufen und die eigene Klasseninstanz als Parameter übergeben, so übergibt man</description>
    </item>
</rdf:RDF>
