MetallDragon
Erfahrenes Mitglied
hi Leute,
Ich habe bei meinem Prog einen sehr komischen Fehler entdeckt.
Hier mal eine schematische Ausführung, da ihr sicher keinen Bock auf den ganzen Code habt
So zur Erläuterung:
Es wird eine Klasse mit zwei funktionen definiert:
Eine, die den "wert" ändert und eine, die selbige aufruft.
Problem:
Wenn die die funktion aenderewert durch test aufrufe geht alles.
Wenn ich jedoch die Funktion aenderewert2
(deren aufgabe es ist bei test (nicht test2)! die funktion aenderewert aufzurufe geht es nicht. die Funktion wird zwar ausgeführt aber danach wir die variable test.wert wieder auf den Ursprungswert gesetzt.
Quasi als würde der Konstruktor nochmal ausgeführt.
Ich hoffe ihr versteht, was ich meine
Bin für jede Hilfe dankbar.
Ich habe bei meinem Prog einen sehr komischen Fehler entdeckt.
Hier mal eine schematische Ausführung, da ihr sicher keinen Bock auf den ganzen Code habt
Code:
class a
{
int wert;
void aendere_wert(int neuerwert);
b]void aendere_wert2(int neuerwert2, a Ziel);
void a()
{
wert = 5;
}
};
void a::aendere_wert(int neuerwert)
{
a = neuerwert;
}
void a::aendere_wert2(int neuerwert2, a Ziel)
{
Ziel.aendere_wert(neuerwert2)
}
Das ist die Klassendeklaration. Soweit Alles schön und gut aber jetzt:
void main()
{
a test;
a test2;
test.aenderewert(10); das geht problemlos (steht nur der vollsändigkeit habler hier)
test2.aenderewert2(20, test); <-- PROBLEM! Der Code wird ausgeführt aber nachdem die Funktion ausgeführt wurde wird der wert wieder auf den Ursprungswert gesetzt!
}
So zur Erläuterung:
Es wird eine Klasse mit zwei funktionen definiert:
Eine, die den "wert" ändert und eine, die selbige aufruft.
Problem:
Wenn die die funktion aenderewert durch test aufrufe geht alles.
Wenn ich jedoch die Funktion aenderewert2
(deren aufgabe es ist bei test (nicht test2)! die funktion aenderewert aufzurufe geht es nicht. die Funktion wird zwar ausgeführt aber danach wir die variable test.wert wieder auf den Ursprungswert gesetzt.
Quasi als würde der Konstruktor nochmal ausgeführt.
Ich hoffe ihr versteht, was ich meine
Bin für jede Hilfe dankbar.