statisches array in klasse



  • hallo, wie kann ich folgendes array füllen?

    class test
    {
     public:
     string myAr[8];
    };
    

    im konstruktor?
    garnicht?



  • Doch, z.B. im Konstruktor. Aber statisch ist das Array nicht! 😛



  • und wie im konstruktor?

    hier bekomm ich fehler:
    .h

    class TForm1 : public TForm
    {
    __published:	// Von der IDE verwaltete Komponenten
            TStringGrid *StringGrid1;
            TMainMenu *MainMenu1;
            TMenuItem *Datei1;
            TMenuItem *ffnen1;
            TOpenDialog *OpenDialog1;
            TMemo *Memo1;
            TButton *Button1;
            void __fastcall ffnen1Click(TObject *Sender);
    private:	// Anwender-Deklarationen
    public:		// Anwender-Deklarationen
    
            static const String stopFlag[8];
            __fastcall TForm1(TComponent* Owner);
    
    };
    

    .cpp
    [/cpp]
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {

    stopFlag[8] = {"511","512","513","515","516","517","518","519"};
    }
    [/cpp]

    ist zwar bcb, dürfte doch aber nix ausmachen oder?



  • achso, fehler ist Ausdruckssyntax



  • Da es static const deklariert ist, musst du das Datenelement in der Quellcodedatei ungefähr so deklarieren:

    const String TForm1::stopFlag[8] = {"511","512","513","515","516","517","518","519"};
    

    sollte funzen (könnte sein, dass du die Arraygröße nicht mit angeben musst. Habs nicht so oft verwendet :D)



  • ja das funzt, ist klar!

    wenn ich aber das static weglasse, und es wie oben gezeigt im konstruktor initialisieren will, bekomm ich den fehler! Wiesoo?

    bzw wie geht es richtig??



  • __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
        stopFlag[0] = "511";
        stopFlag[1] = "512";
        stopFlag[2] = "513";
        stopFlag[3] = "515";
        stopFlag[4] = "516";
        stopFlag[5] = "517";
        stopFlag[6] = "518";
        stopFlag[7] = "519";
    }
    

Anmelden zum Antworten