kostenloser Webspace werbefrei: lima-city


Variable von Form1 in Form2 bearbeiten in Visual c++

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    r*s

    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:confused: wie sowas in C++ funzt oder ob es soetwas gibt.
    In VB.Net gab es das (Public x as integer).
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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;
    };
  4. 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.
  5. Autor dieses Themas

    r*s

    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
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!