Problem mit Enumerierungstyp enum in C++



  • Hallo, ich habe eine Frage zu den Aufzählungstyp enum in C++

    y deklariere diesen Typ um Zustände eines Flugzeugs zu haben:

    enum Flug_Zustand {starten, fliegen, landen, parken};
    

    Dann habe ich eine Klasse wo ich sie benutze:

    Flug_Zustand Zustand;
    

    Was ich möchte ist, in einer Methode von dieser Klasse den Wert von Zustand lesen können, durch die Tastatur, und auch den Wert dann ausgeben können (aber den Wert, zB. landen, nicht 2)

    ich habe es so gedacht

    cout<<"Gib den Zustand vom Flugzeug";
    cin>>->this Zustand;     //das gibt mir ein Fehler
    cout<<->this->estado;    //das auch
    

    Vielleicht gibt es auch einen anderen Aufzählungstyp?

    Vielen, vielen dank
    marta



  • mcz schrieb:

    cout<<"Gib den Zustand vom Flugzeug";
    cin>>->this Zustand;     //das gibt mir ein Fehler
    cout<<->this->estado;    //das auch
    

    Was ist das denn bitte?

    Wenn dann:
    cout << this->Zustand;



  • Ja, ich habe es vom spanischen übersetzt!!
    entschuldigung, das heisst natürlich

    cout<<->this->Zustand;
    

    aber es funktioniert nicht
    danke
    marta



  • mcz schrieb:

    Ja, ich habe es vom spanischen übersetzt!!
    entschuldigung
    [code]

    ich glaube hehejo meinte vielmehr was denn

    cout<<->
    

    darstellen soll



  • Ganz einfach...
    Schreibst eine Funktion die dir in abhängigkeit vom Enumwert einen string zurückliefert (geht bequem mit switch) und einen für den umgekehrten Weg (textparser oder mit Compare). Kannst die beiden Funktionen gleich nennen
    und danach nach bedarf missbrauchen.



  • Sagt mal hab ich was falsch verstanden oder?
    Das ist jetzt das zweite mal dass ich sowas hier lese von wegen
    ner enum die dann ein Member sein soll und deren Wert abgefragt oder
    gesetzt werden soll wie der einer herkömmlichen member-variablen.
    Ich denk doch enum definiert nur Konstanten, die man dazu verwenden
    kann einen Wert zu überprüfen oder zu setzen.
    I think enumerations are used to define constant values so
    you can't use them as membervariables.
    Sprich

    class A {
    public integer Zustand;
    ...
    };
    enum example {
    FILLED = 1,
    EMPTY = 2
    }

    und dann sowas wie
    A objectOfClassA;
    objectOfClassA.Zustand = example.FILLED;
    cout << objectOfClassA.Zustand; // only a number will be returned, in this case 1

    because you can't even write example.FILLED = 1;

    Oder hab ich des falsch?


Anmelden zum Antworten