INT Wert in einer anderen klasse ändern
-
Hallo,
das ist mein erstes NET Program also seid ein wenig nachsichtigIch möchte einen Int Wert per klick ändern der nach beendigung der Form2 in der Form1 angezeigt werden soll, dazu habe ich mir eine Klasse erstellt.
#pragma once public class GetFehler { private: int gesamt; public: GetFehler() : gesamt(0) { } int wert; void setGesamt(int g); int getGesamt();
hier GetFehler.cpp
#include "StdAfx.h" #include "GetFehler.h" int GetFehler::getGesamt() { return gesamt; }; void GetFehler::setGesamt(int g) { this->gesamt = +g; };
aufruf in der zweiten Form
GetFehhler fehler; fehler.setGesamt(+1);
nur leider bleibt gesamt immer 0;
Was mache ich verkehrt?
Was muss ich ändern?Gruß
-
Hallo,
in der Klasse erscheint mir zunächst mal nichts falsch. Vermutlich ist der Fehler im Kontext der beiden Forms zu sehen. Poste mal den Code drumherum v.a. der Aufruf der Forms.
Gruss
foodax
-
Hallo,
muss mich ein wenig berichtigen, der wert gesamt ist nach dem Klick kurz 1 nur bei einem erneuten Aufruf zb. mit einem anderen Button wieder nur 1 da ich ja ein neues Objekt aufrufe und gesamt wieder mit 0 initialisiert wird.GetFehler fehler; fehler.setGesamt();
Wie ändere ich gesamt über die ganze Laufzeit?
Wo muss ich mein Objekt dafür anlegen?public ref class buchstaben : public System::Windows::Forms::Form { public: // GetFehler *meinfehler; int a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z;//,fehler; //public: private: System::Windows::Forms::GroupBox^ groupBox1; private: System::Windows::Forms::Button^ button6; private: System::Windows::Forms::Button^ button4; private: System::Windows::Forms::Label^ label1; private: System::Windows::Forms::Button^ button5; public: buchstaben(void) { GetFehler fehler; InitializeComponent();
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) { fehler.setGesamt(); }
wird mit
1>c:\users\jessica\documents\visual studio 2008\projects\ichkann\ichkann\buchstaben.h(291) : error C2065: 'fehler': nichtdeklarierter Bezeichner 1>c:\users\jessica\documents\visual studio 2008\projects\ichkann\ichkann\buchstaben.h(291) : error C2228: Links von ".setGesamt" muss sich eine Klasse/Struktur/Union befinden.
quitiert
Gruß
-
ich würd sagen dein problem ist, dass fehler nicht in der gesammten klasse gültig ist, sondern die variable existiert nur inerhalb der Funktion buchstaben und kann somit von außen auch nicht verändert werden, da sie ja nur für einen kurzen moment existiert...du kannst sie zum Beispiel definieren bevor du die Klasse Buchstaben erzeugst...oder du erzeugst sie unter public/private inerhalb der Klasse