lokales Array und Zuweisung im Konstruktor



  • Hallo,
    Ich habe eine Klasse, in der ich in der Headerdatei ein statisches Array deklariere:

    class CClass
    {
    public:
       CClass();
       ~CClass();
    private:
       int Array[4];
    }
    

    Ich möchte jetzt dem Array im Konstruktor seine Werte zuweisen, und das soll ziemlich kompakt sein. Ich dachte an sowas:

    Array = {2, 4, 3, 6};
    

    Aber das geht nur, wenn ich das Array direkt hier deklariere:

    int Array[4] = {2, 4, 3, 6};
    

    Warum ich das will, liegt daran, dass das Array statt einer Größe von 4 tatsächlich ne Größe von 256 hat und ich nicht schreiben möchte Array[0] =... bis Array[256] =... - das ist mir zuviel Code. Wäre ja viel kompakter wenn ich das in die geschweiften Klammern setze.
    Geht das irgendwie?

    Danke
    Norman



  • Ich schätze es hat sich erledigt, hab ne Lösung gefunden:

    class CClass
    {
    public:
       CClass();
       ~CClass();
    
    private:
       int m_Array[4];
    };
    
    CClass::CClass()
    {
       int Array[4] = {2, 4, 3, 6};
    
       for (int i = 0; i < 4; i++)
          m_Array[i] = Array[i];
    }
    


  • Wenn das Array statisch ist, gibt es eine bessere Lösung:

    class Class {
        static int m_Array[4];
    };
    
    int Class::m_Array[4] = {1, 2, 3, 4};
    

Anmelden zum Antworten