Klassen und Variablen



  • Ich hatte mir eine möglichkeit geschaffen Variableinhalte über eine
    Funktion von einer Klasse in die andere zu übernehmen bzw. zu speichern.
    Das sollte aber auch besser gehen.
    Ich habe zwei Dialogklassen

    Klasse1Dlg und Klasse2Dlg

    in Klasse Klasse1Dlg habe ich eine Varible vom Typ

    int Variable1

    dieser Wert wird irgendwann in der Klasse auf 5 gesetzt.

    wie bekomme ich also auf die einfachste weise den wert 5 der
    Variable1 in die Klasse

    Klasse2Dlg

    in die Variable

    int Variable2:

    Über struct habe ich es probiert geht aber nicht

    Vossy

    Danke



  • kann mir keiner eine andere Möglichkeit sagen?

    Vossy



  • Hallo !

    Probier mal das hier:
    In Klasse2Dlg eine Membervariable erstellen (rechte Maustaste im Arbeitsbereich auf Klasse2Dlg -> Member-Variable hinzufügen -> "int" und "Variable2" eintragen (public) -> OK).

    Und jetzt in Klasse1Dlg:

    #include "Klasse2Dlg.h"
    
    ...
    
    int Variable1;
    ...
    Variable1 = 5;
    ...
    Klasse2Dlg objKlasse2Dlg;   // das erste ist die Klasse, das zweite das Objekt davon (kann man auch anders nennen)
    objKlasse2Dlg.Variable2 = Variable1;    // Wert übergeben
    objKlasse2Dlg.DoModal();    // zweiten Dialog aufrufen
    ...
    

    Tschüss



  • Ich hatte eine ähnliche metode probiert aber
    ich bekomme ein readfehler..
    Da der Debugger gleich mit abschmirt kenne ich die Ursache nicht.

    Weißt du warum?

    Vossy



  • sollen wir hier raten??



  • Ich sehe ehrlich gesagt dein Problem nicht. Wenn du einen Wert einer anderen Klasse ändern willst, mußt die die Variable entsprechend ändern.

    class Klasse1
    {
     int variable1;
     Klasse2 *pKlasse2;
    
     void setKlasse2(Klasse2 *p)
     {
       pKlasse2 = p;
     }
    
     void setVariable1(int wert)
     {
       variable1 = wert;
       if( pKlasse2 != NULL )
         pKlasse2->variable2 = wert;
     }
    }
    

    setKlasse2() muß natürlich vorher aufgerufen werden, und ein gültiger Pointer muß mit. Dann kennt Klasse1 die Klasse2 und die Variable kann gesetzt werden, wenn variable1 sich immer ändert.

    [ Dieser Beitrag wurde am 06.08.2002 um 14:28 Uhr von Artchi editiert. ]



  • habe problem gefunden.
    Die klasse muß geöffnet bleiben um den wert zu übergeben

    Danke dir dennoch denn daraus kann ich mir jetzt
    was zurechtzaubern

    Vossy



  • Kann elegant so gelöst werden

    Klasse2Dlg objKlasse2Dlg;   // das erste ist die Klasse, das zweite das Objekt davon (kann man auch anders nennen)
    objKlasse2Dlg.Variable2 = Variable1;    // Wert übergeben
    Klasse1Dlg::EndDialog(-1);//entfernt ersten Dialog vom Bildschirm
    objKlasse2Dlg.DoModal();    // zweiten Dialog aufrufen
    

    Vossy


Anmelden zum Antworten