Konstantes statisches Array definieren/initialisieren?



  • Ich möchte die grafischen Elemente im Zeichensatz, die für Tabellen geeignet sind, einfach über ein Array ansprechen. Wie muß ich daß Array definieren und initiaisieren, wenn das Array static const ist?

    //frame.h
    class Frame {
      public:
        const static int UP;   
        const static int DOWN;
        const static int LEFT;
        const static int RIGHT;
    
        [b]const static char PART [255];[/b]
    
    };
    
    //frame.cpp
    const int Frame::UP    = 1;
    const int Frame::DOWN  = 2;
    const int Frame::LEFT  = 4;
    const int Frame::RIGHT = 8;
    
    //[i]Wie wird das Array richtig definiert/initialisiert?[/i]
    [b]const char Frame::PART[255];
    // Soll char für char einzelnd geschehen:
    const char Frame::PART[(Frame::DOWN&Frame::UP)]    = '|';
    const char Frame::PART[(Frame::LEFT&Frame::RIGHT)] = '-';[/b]
    ..
    

    *edit* array-size auf 255 geändert



  • Hallo

    const char Frame::PART[16] = "abc..."; // Stringliteral mit genau 16 Zeichen zuweisen
    

    bis bald
    akari



  • Ich möchte gerne die chars einzelnd zuweisen, weil das Array konkret 255 Plätze aufweist und ich die Zuweisung per Schlüssel machen möchte, auch wenn dies auf einen Rutsch mit 255 chars gehen würde.

    FRAME[(TOP|LEFT)] = '';
    //oder
    FRAME[(TOP|LEFT)] = (char) 68;
    

    Trotzdem schon mal danke @Akari



  • Hallo

    Konstanen kannst du ausschließlich bei der Initialisierung mit einem Wert belegen. Wenn du also dein char-Array nicht dann auf einem Schlag belegen kannst, darf das Array nicht konstant sein. Dann hilft es vielleicht das Array selber nicht-const und private zu machen und dafür noch eine static public Getter-Methode zu schreiben.

    bis bald
    akari



  • dank dir! -gorgoyle


Anmelden zum Antworten