enum



  • ist es möglich ein enum in c++ auch mit strings zu belegen?

    enum egal
    {
    lieblingsgericht = "pizza",
    lieblingsfarbe = "rot",
    lieblingsstadt = "berlin"
    };

    ?? bekomme immer:
    expected constant expression



  • Nein, das ist nicht erlaubt. Du könntest aber Operatoren überladen, welche eine implizite Konvertierung in Strings erlaubt.



  • Warum willst du dafür unbedingt nen enum?
    Nimm doch nen struct :). Das ist per default public.

    #include <string>
    using namespace std;
    struct Values
    {
       const string lieblingsgericht = "pizza";
       const string lieblingsfarbe   = "rot";
       const string lieblingsstadt   = "berlin";
    };
    

    (Ohne static nur in C++11 erlaubt, kompilieren mit g++ -std=c++11)



  • Scorcher24 schrieb:

    struct Values
    {
       const char* lieblingsgericht = "pizza";
       const char* lieblingsfarbe   = "rot";
       const char* lieblingsstadt   = "berlin";
    };
    

    FIFY.
    Denkbar wäre auch einfach ein eigener namespace.


Anmelden zum Antworten