Felder initialisieren in einer Klasse



  • Hallo,

    Ich möchte ein Integer Array meiner Klasse mit Werten initialisieren.
    zB so:
    class CTest
    {
    int a[] = {1,2,3,4,12};
    };

    Wieso funktioniert das innerhalb einer Klasse nicht? Was muss ich anders machen damit ich das gleiche Ergebnis bekomme?

    Vielen Dank für die Hilfe !



  • Innerhalb eine Klasse gehören nur Deklarationen, keine Definition.
    Wenn du wirklich eine konstante in deiner klasse definieren willst, so hast du 2 möglichkeiten:

    1. Im Konstruktor initialisieren -> also im Konstruktor a mit deinem array vollschreiben. a musst du zuvor mit index 5 deklariert haben.

    2. der enum-hack
    einfach enum a {x=1, y=2 ... usw}

    greetz
    chris90



  • Mein erster Versuch war es, das Array im Konstriktor zu füllen. Leider hat es nicht geklappt. ->ERROR Meldungen.

    Hab folgendes versucht:

    im Header:
    int a[5];

    CPP (im Konstruktor):
    a[] = {1,2,3,4,5};

    Hat so nicht funktioniert. Wo liegt mein Denkfehler ??



  • Du kannst das Array so nicht im Konstruktor initialisieren, möglich wäre:

    struct Foo
    {
     Foo()
     {
       for( int i = 0; i < 5; ++i )
         a[ i ] = i+1;
     }
    
     int a[5];
    };
    

Anmelden zum Antworten