[gelöst]valarray als member variable in Klasse



  • Hallo,
    ich habe ein Problem damit einen valarray in einer Klasse als Klassenvariable zu deklarieren.
    Im folgenden steht der Code, der eine Idee davon geben soll, was ich haben möchte:

    #include<valarray>
    #include<iostream>
    using namespace std;
    
    class testclass{
       public:
       valarray<int> testarray( 4 );
       testclass(){
       }   
    };
    int main ( void ){
       testclass Class;
       Class.testarray[2] = 3;
    }
    

    Dieser Code kompiliert noch nicht einmal.
    Fehler:

    test.cpp:7: error: expected identifier before numeric constant
    test.cpp:7: error: expected ‘,’ or ‘...’ before numeric constant
    test.cpp: In function ‘int main()’:
    test.cpp:13: error: invalid types ‘<unresolved overloaded function type>[int]’ for array subscript
    

    Prinzipiell würde ich die Länge des arrays gerne im Konstruktor bestimmen.
    Wenn mir jemand weiterhelfen könnte wäre das Klasse.
    Gruß
    J.Bourne



  • valarray<int> testarray( 4 );
    

    Das ist kein gültiges C++. Innerhalb der Klassendefinition dürfen Variablen nur deklariert werden.

    Zur Initialisierung musst du den Konstruktor benutzen, genauer gesagt dessen Initialisierungsliste.

    testclass() : testarray(4) {}
    


  • Vielen Dank für den Hinweis!
    Es funktioniert nun!
    Gruß
    J.Bourne


Anmelden zum Antworten