int zu Konstanten casten?



  • Hallo,
    ich möchte auf EDITTEXT Elemente meiner API zugreifen. Da es ziemlich viele sind, würde ich das gerne mit einer for-schleife realisieren.
    Die Namen meiner EDITTEXT Elemente sind, ELEM_1, ELEM_2, ELEM_3, ...

    Dies sind ja nur leider Konstanten. Ich bräuchte also irgendwie sowas:

    #temp_const = #"ELEM_".i
    Also variable Variablen.

    Vielleicht versteht mich ja jemand und kann mir weiterhelfen?



  • Brauchst du das als String? Wenn dem so is nimm doch einfach std::string und bastel dir dein Namen zusammen.
    Wenn du Variablennamen dynamisch erstellen willst: das geht nicht. Alternativ nimmst du dann ein Array.



  • Mhh, also Visual Studio definiert ja für jedes Window-Element eine Konstante, die den Int-Wert des Elementes enthält. Ich würde mir also gerne den Konstanten-Namen zusammenbasteln. Das geht also nicht?



  • Wenn du den Namen einer Konstanten meinst, dann nein.



  • Ich mach das bei MFC Programmen fast immer so:

    void Foo::Bar()
    {
        static const int ids[] = {
            ELEM_1,
            ELEM_2,
            ELEM_3,
            ELEM_4,
            ELEM_5,
            ELEM_6,
            };
    
        for (unsigned i = 0; i < (siezof(ids)/siezof(ids[0])); i++)
            Whatever(ids[i]);
    }
    

    Wird das Array in mehreren Funktionen gebraucht wird es eben in einen nameless namespace gepackt (der natürlich richtigerweise "anonymous namespace" heisst) -- und bekommt dann natürlich einen sprechenderen Namen.



  • Genial, danke!


Anmelden zum Antworten