Chmielewski
Neuling
Thread Starter
- Mitglied seit
- 26.06.2006
- Beiträge
- 397
Grüsst euch,
ich bin gerade dabei einen Vektor selbst zu implementieren, in dem eine Zahlenfolge, repräsentiert jeweils durch eine Stelle im Vektor, sich befindet. Ein Beispiel:
456 + 3596
(vec1) (vec2)
Nun gehört der plus operator überladen, welches die beiden Vektoren addiert. Es klappt alles eigentlich bis auf die Rückgabe auf vecres.
mVector vecres;
if (43 == (int)op){ //do addition
vecres = *vecfst + *vecsnd;
vecres.print();
}else
if (45 == (int)op){ //do subtraction
vecres = *vecfst - *vecsnd;
}
Deklaration der Überladung vom + Operator:
friend mVector operator+(const mVector &sum, const mVector &sum2);
Das Problem ist nun, dass vecres nach der überladung kein Daten mehr beinhaltet, da im allerletzten Schritt bei der Überladung vom + Operator (nachdem der Copy-Konstruktor geladen wurde) nochmals der Dekonstruktor auf vecres geladen wird (nachdem er bereits davor auf result (rückgabe im + operator) angewandt worden ist).
Ich weiß da nicht mehr weiter wo der Fehler sein könnte. Der Einfeinheithalber habe ich unter rapidshare das ganze Projekt upgeloaded. Wäre sehr dankbar, wenn mir jemand sagen könnte wie man das Problem lösen kann.
http://rapidshare.com/files/4679240/uebung1.rar.html
ich bin gerade dabei einen Vektor selbst zu implementieren, in dem eine Zahlenfolge, repräsentiert jeweils durch eine Stelle im Vektor, sich befindet. Ein Beispiel:
456 + 3596
(vec1) (vec2)
Nun gehört der plus operator überladen, welches die beiden Vektoren addiert. Es klappt alles eigentlich bis auf die Rückgabe auf vecres.
mVector vecres;
if (43 == (int)op){ //do addition
vecres = *vecfst + *vecsnd;
vecres.print();
}else
if (45 == (int)op){ //do subtraction
vecres = *vecfst - *vecsnd;
}
Deklaration der Überladung vom + Operator:
friend mVector operator+(const mVector &sum, const mVector &sum2);
Das Problem ist nun, dass vecres nach der überladung kein Daten mehr beinhaltet, da im allerletzten Schritt bei der Überladung vom + Operator (nachdem der Copy-Konstruktor geladen wurde) nochmals der Dekonstruktor auf vecres geladen wird (nachdem er bereits davor auf result (rückgabe im + operator) angewandt worden ist).
Ich weiß da nicht mehr weiter wo der Fehler sein könnte. Der Einfeinheithalber habe ich unter rapidshare das ganze Projekt upgeloaded. Wäre sehr dankbar, wenn mir jemand sagen könnte wie man das Problem lösen kann.
http://rapidshare.com/files/4679240/uebung1.rar.html