Konstruktor mit Parameter aufrufen in Form



  • ich habe eine Klasse mit einem Konstruktor, der einen Parameter hat:
    Test.h:

    class Test {
      private:
        int x;
      public:
        __fastcall Test(int x);
    };
    

    Test.cpp:

    __fastcall Test::Test(int x) {
      this->x = x;
    }
    

    In meiner Form möchte ich das Objekt erzeugen:

    class TfrmMain : public TForm {
        public:
            __fastcall TfrmMain(TComponent* Owner);
            Test p1(1);
    };
    

    Wieso funktioniert das nicht?
    Edit:
    Ich denke mir, das ist wie bei normalen Memebervariablen, die in der Klasse nicht initialisiert werden können. Könnte ich es so machen?
    main.h:

    class TfrmMain : public TForm {
        public:
            __fastcall TfrmMain(TComponent* Owner);
            Test p1;
    };
    

    main.cpp:

    __fastcall TfrmMain::TfrmMain(TComponent* Owner)
    	: TForm(Owner), p1(1)
    {
    }
    


  • Hallo

    Ja, das zweite ist richtig. In der Deklaration von Klassen können nichtstatische nicht-POD-Member nur deklariert, aber nicht initialisiert werden. Dafür ist der Konstruktor da.

    bis bald
    akari


Anmelden zum Antworten