Variable von Form1 in Form2 bearbeiten in Visual c++
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
ahnung
beitrag
beschrieb
einstiegspunkt
formen
globale variable
hilfe
klasse
lokale variable
main
mengen
methode
nutz
nutzen
parameter
rahmen
rms
standard
variable
vielen dank
-
Wie kann ich eine Variable 'x' auch in einer anderen Form (z.B.: Form2) verwenden (globale Variable etc.)? Nutze Visual C++ .Net und hab keine Ahnung wie sowas in C++ funzt oder ob es soetwas gibt.
In VB.Net gab es das (Public x as integer). -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
In C++ kann jeder Klasse ein public, protected und private Bereich hinzugef?gt werden:
class Form1
{
public:
//?ffentlich zug?ngliche Variablen und Methoden
protected:
//Nur in dieser Klasse und in abgeleiteten Klassen
//zug?ngliche Variablen und Methoden
private:
//Nur in dieser Klasse zug?ngliche Variablen und
//Methoden
};
Wenn du die Variable in den Publicbereich setzt, dann
kannst du auch von au?en ?ber das zugeh?rige Object auf sie zugreifen:
Form1 myform;
//Angenommen, myform hat du Variable x im //public-Bereich und du hast eine lokale Variable x //vom gleichen Typ. Dann kannst du die Variable //kopieren mit
x = myform.x;
Im Rahmen der Datenkapselung w?re es aber sauberer, die Variable x in den private-Bereich zu setzen und
in den public-Bereich die entsprechenden Zugriffsfunktionen zu setzen:
class Form1
{
public:
//...
int GetX const(){return m_x;}
int SetX(int nVal){m_x = nVal;}
private:
int m_x;
};
-
Wenn du eine wirklich globale Variable (oder mehrere) nutzen willst, solltest du sie (z.b. bei .net Standard Apps) im Einstiegspunkt (main) definieren und als Pointer-Parameter an die Formen geben (z.b. über den Konstruktor oder wie oben beschrieben über public-Felder oder besser Accessoren.
Bei einer Menge Variablen die von nicht Geschachtelten Forms (geschachtelt z.b. Form1 öffnet Form2) genutzt werden sollen, kann auch eine eigene Struktur / Klasse nützlich sein, die einmal instanziiert wird und dann via Pointer den Forms überreicht wird. -
Vielen Dank für die Hilfe. Ich hab es allerding nun mit einem Namespace realisiert weil dies mir für mein Programm noch sinniger erschien.
Beitrag geändert: 6.1.2008 13:27:42 von rms -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage