Problem mit Wertzuweisung an zweidim. Array



  • Hallo,

    ich will eine zweidim. Matrix mit verschiedenen Werten füllen. Wenn ich folgenden Konstruktor aufrufe, bekomme ich aber mehrere Syntaxfehler.

    struct Matrix {
      int matrix[5][5];
    };
    
    class T {
      Matrix Feld;
    ...}
    
    T::T(void)
    {
     Feld = {{5,1,2,3,4},{1,2,3,4,5},{2,3,4,5,1},{3,4,5,1,2},{4,5,1,2,3}};
    }
    

    Hab ich einfach 'n Knoten im Hirn oder muß ich wirklich _jedes_ Feld einzeln (also mit matrix[2][2]=4 usw.) initialisieren???

    Danke & Gruss,
    Sid73


  • Mod

    Du kannst Arrays nicht zuweisen oder in einer Konstruktorinitialisierungsliste initialisieren. Allerdings befindet sich dein Array in einem struct, und dieses unterliegt diesen Beschränkungen nicht. Folgendes wäre also möglich:

    struct Matrix {
      int matrix[5][5];
    };
    
    class T {
      Matrix Feld;
    ...}
    
    T::T(void)
    {
       static const Matrix proto = {{5,1,2,3,4},{1,2,3,4,5},{2,3,4,5,1},{3,4,5,1,2},{4,5,1,2,3}};
       Feld = proto;
    }
    

Anmelden zum Antworten