Klassenvariablen direkt verändern
-
Hallo Leute ich habe ein Anfängerproblem bei dem Ihr mir hoffentlich schnell helfen könnt
Nachdem ich die Klasse Optionen erstellt und eingebunden habe :
#pragma once public ref class Optionen { public: int p1fähigkeit; Optionen(void); };
mächte ich gerne nachdem ich die Instanz Opt mittels:
Optionen^ Opt = gcnew Opt;
erstellt habe aus mehreren Forms DIREKT den wert p1fähigkeit ändern können.
Nachdem was ich gelesen habe sollte dies einfach mit z.B.Opt.p1fähigkeit=7;
funktionieren. Was mache ich falsch? Oder kann man wirklich die Klassenvariablen nur per Funktion innerhalb der Klasse ändern?
Danke schonmal
-
Der Konstruktor heißt Optionen.
-
Tippfehler von mir hab natürlich
Optionen^ Opt = gcnew Optionen;
benutzt aber es funktioniert trotzdem nicht
-
Nicht funktionieren heisst in deinem Fall: kompiliert nicht
Zurgiff via Pfeil Operator.
Opt->p1fähigkeit=7;
Simon
-
Vielen Dank schonmal für eure Hilfe!!!
Ich kann jetzt ich schon in Form1 wo ich die Klasseninstanz erstelle die Variable verändern. Wenn ich aber versuche in Form2 auf opt->p1fähigkeit zuzugreifen kennt er die Klasse nicht. Bisher erstelle ich die Instanz beim Ereignis Form1_Load:
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {Optionen^ opt=gcnew Optionen;opt->p1fähigkeit=2; }
In Form1 funktioniert alles blendend.
Aber wenn ich dann per Button Form2 öffne:
private: System::Void Form2_Load(System::Object^ sender, System::EventArgs^ e) {opt->p1fähigkeit=4; }
kennt er die Instanz bzw. Klasse nicht. Habe ich die Instanz an der falschen Stelle erstellt oder habe ich irgendwelche Includes vergessen? Die Klasse habe ich in beiden Forms und der Hauptdatei includet und Form2 in Form1.
Hoffe dabei könnt ihr mir auch weiterhelfen