[gelöst] Enum (Class) Deklarierung



  • Guten Tag.

    Ich lerne momentan die Sprache C++. Als ich ein Beispiel aus meinem
    C++ Buch kopiert hatte, um diese Funktion (enum) besser zu verstehen, bekam ich einen Fehler.
    Ich benutze den Compiler von MinGW.

    Hier der Code (aus dem Buch):

    #include<iostream>
    using namespace std;
    
    enum class Farbtyp { rot, gelb, gruen };
    
    struct Punkt { int x; int y; bool istSichtbar; Farbtyp dieFarbe; };
    
    int main() {
        Punkt p1 { 100, 200, false, Farbtyp::gelb }; // direkte Initialisierung || Hier markiert der Compiler den Fehler
        cout << "p1.x = " << p1.x << " p1.y = " << p1.y << " p1.istSichtbar= " << p1.istSichtbar << " p1.dieFarbe= " << static_cast<int>(p1.dieFarbe) << endl;
    }
    

    Die Fehlermeldung von meinem Compiler: error: 'Farbtyp' is not a class or namespace

    Meine Frage ist nun, warum Farbtyp keine class ist, obwohl ich sie oben deklariert habe. Ebenfalls wäre es nett, wenn mir jemand ein Beispiel zeigen könnte, indem der Sinn von enum klar wird.

    MfG
    Hexa



  • Welcher Compiler? Hast du C++11/14 angemacht?


  • Mod

    Du musst C++11 oder aktueller bei deinem Compiler aktivieren, damit du enum class benutzen kannst.



  • Den Sinn von enum sollte doch dein Buch erklären.



  • SeppJ schrieb:

    Du musst C++11 oder aktueller bei deinem Compiler aktivieren, damit du enum class benutzen kannst.

    Ah, nun klappt es. Vielen dank.


Anmelden zum Antworten