<?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:const</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:24+0200</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:const:arguments&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:const:def&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:const:mutable&amp;rev=1663868365"/>
                <rdf:li rdf:resource="http://update.proggen.org/doku.php?id=cpp:const:start&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:const:arguments&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:const:arguments</title>
        <link>http://update.proggen.org/doku.php?id=cpp:const:arguments&amp;rev=1663868365</link>
        <description>Const-Parameter

Nehmen wir an, wir haben ein sehr große und aufwendige Klasse, die alle Programminternas steuert und deswegen überall gelesen werden muss, aber halt nicht überall verändert werden darf. Hier symbolisch dargestellt von


class Data
{
  public: 

    int Date;
};</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:const: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:const:def</title>
        <link>http://update.proggen.org/doku.php?id=cpp:const:def&amp;rev=1663868365</link>
        <description>Const-Methoden

Ist ein Objekt als konstant markiert, dann darf man natürlich auch keine Methoden mehr aufrufen, die das Objekt verändern könnten. Nehmen wir unsere Klasse Data erneut und geben ihr Setter und Getter.

class Data
{
  private:
    int Date;

  public: 
    int GetDate()
    { 
      return Date;
    }   
    bool SetDate( int date )
    {
      Date = date;
      return true;  // Datum erfolgreich gesetzt
    }
};</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:const:mutable&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:const:mutable</title>
        <link>http://update.proggen.org/doku.php?id=cpp:const:mutable&amp;rev=1663868365</link>
        <description>mutable

Ein Const-Objekt darf in sich nicht verändert werden. Allerdings bietet C++ hier dem Benutzer, zwischen dem Wert eines Objektes zu unterscheiden und zwischen Daten, die den Wert des Objektes nicht betreffen.

Als Beispiel sei folgendes Problem genannt: Eine Klasse besitzt ein Datum und den Entwickler interessiert, wie oft dieses Datum gelesen wird. Nun können auch Const-Objekte gelesen werden. Der einfachste Weg wäre nun, im Objekt zu speichern, wie oft der Wert abgefragt wurde. Im Fall…</description>
    </item>
    <item rdf:about="http://update.proggen.org/doku.php?id=cpp:const: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:const:start</title>
        <link>http://update.proggen.org/doku.php?id=cpp:const:start&amp;rev=1663868365</link>
        <description>Const-Correctness

Die meisten Programmiersprachen benutzen entweder konstante, unveränderliche Objekte, die zu neuen Objekten kopiert und verändert werden oder sie verwenden Objekte die veränderlich sind.

C++ beherrscht den Umgang mit beidem Varianten.</description>
    </item>
</rdf:RDF>
