enum als Variable



  • Hi,

    wenn ich eine Variable mittels einer Klasse abfragen will, dann gehe ich wie folgt vor:

    class Klasse
    {
       public:
       int Liefer_Info() const {
       return m_dies_und_jenes;
       }
    
       (...)
    
       private:
       int m_dies_und_jenes;
    }
    

    und dann in der main mache ich z.B.

    int main()
    {
    vector<KLASSE> vec;
    (...
    schreibe Vektor
    ...)
    
    int aktueller_Wert = vec[0].Liefer_Info();
    }
    

    Letztlich schreibe ich also in eine neue Variable den Wert aus einem Vektoreintrag mittels einer Klasse.

    Wie mache ich dies aber mittels enum?

    class Klasse
    {
       public:
       enum Type{UNDEFINIERT=0, VORHANDEN=1, NICHT_VORHANDEN=2};
       Type Hole_Typ() const{
       return m_typ;
       }
    
       (...)
    
       private:
       Type m_typ;
    }
    

    und dann in der main würde ich z.B. gerne folgendes machen

    int main()
    {
    vector<KLASSE> vec;
    (...
    schreibe Vektor
    ...)
    
    Type aktueller_Wert = vec[0].Hole_Typ();
    }
    

    Allerdings funktioniert das nicht. Was müsste man denn ändern?

    Ich hoffe, es ist überhaupt nachvollziehbar. Evtl. wäre es verständlicher gewesen, doch den ganzen Code einfach zu kopieren..
    Jedenfalls schonmal vielen Dank!



  • Allerdings funktioniert das nicht.

    Das heißt?

    Ich hoffe, es ist überhaupt nachvollziehbar.

    Nein.



  • Klasse::Type aktueller_Wert =...

    wenn ich das "funktioniert nicht" richtig errate.



  • Jockelx schrieb:

    Klasse::Type aktueller_Wert =...

    wenn ich das "funktioniert nicht" richtig errate.

    oder einfach auto nehmen, wenn du KLASSE::Type nicht ausschreiben willst.

    auto aktueller_Wert = vec[0].Hole_Typ();
    

    Außerdem enthält dein vector<KLASSE> nicht Objekte vom Typ Klasse (Groß/Kleinschreibung beachten, auch in Beispielen!).



  • Danke!


Log in to reply