Array in Klasse gibt Syntaxerror



  • Ich habe mir eine kleine Klasse gebastelt und versuche darin ein Array direkt mit werten zu erstellen dabei bekomme ich allerdings einen Syntaxerror für die { , erstelle ich es jedoch im main() dann gehts, kann mir einer sagen wieso das so ist? Oder spielt mein Compiler (VC++) einfach nur verrückt?

    class test
    {
    private:
        int array[2]={1,2};
        //gibt Syntaxerror
    };
    void main()
    {
        int array[2]={1,2};
        //gibt keinen Fehler
    }
    


  • Du kannst Attributen so keinen Wert zuweisen.
    Erstelle stattdessen einfach einen Konstruktor:

    class test
    {
    private:
        int array[2];
    
        test(){
        //Weise die Werte zu
    }
    };
    void main()
    {
        //Bla
    }
    

    EDIT: Verdammter Browser *gr*



  • Als Alternative könntest du ein statisches Array verwenden (dann arbeiten aber alle Objekte deiner Klasse mit den selben Daten - du mußt also selber wissen, ob das das richtige für dich ist):

    class test
    {
      static int array[2]
      ...
    };
    
    int test::array[2] = {1,2};
    

    PS: Das heißt übrigens "int main()".



  • Danke für die Antworten das mit dem Konstruktor hat mir gefehlt.


Anmelden zum Antworten