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 DialogklassenKlasse1Dlg 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 KlasseKlasse2Dlg
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 übergebenDanke dir dennoch denn daraus kann ich mir jetzt
was zurechtzaubernVossy
-
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