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