Verstädnisfrage zu Aufzählungstypen



  • Aus dem Buch "Der C++ Programmierer" von Ulrich Breymann.

    In einem beispielhaften Quelltext findet sich folgende Zeile, mit der Bemerkung, daß sie gültig ist."i" ist eine Variable vom Datentyp "int".

    heute = static_cast<Wochentag>(i);
    

    Zuvor sagte der Verfasser folgendes: "Nicht erlaubt ist die Umwandlung einer int-Zahl in einen enum-Typ.

    Wie ist diese Aussage mit der obigen Codezeile vereinbar?



  • Überhaupt nicht.



  • Was gemeint war, ist, dass andere integrale Datentypen nicht implizit in einen enum -Typ konvertierbar sind. Die von dir beschriebene Code-Zeile zeigt jedoch einen expliziten Cast, was - wie du festgestellt hast - durchaus möglich ist.



  • Aaah, das ergibt einen Sinn, dann hat sich der Autor nur etwas unsauber ausgedrückt.
    Alles klar, dann verstehe ich es.

    Eine Frage hat sich im weiteren Verlaufe des Lesens noch ergeben:
    Er sagt, daß eine Struktur auch Funktionen enthalten kann. Wozu brauche ich dann noch Klassen?



  • Strukturen und Klassen sind in C++ das gleiche, abgesehen von der Sichtbarkeit nach außen. Standardmäßig sind Structuren public , Klassen sind private .


Log in to reply