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 sindprivate
.