Probleme bei Rückgabe eines Objectes nach binärer Operatorüberladung (c++)

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
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
würd dir gerne helfen, aber ich kann das file nicht ziehen. Kopier halt einfach mal alles wichtige hier rein...


mfg
 
thx. Mittlerweile hab ich die Übung fertig. Nächste Übung ist: eine Heap-Struktur aufbauen inkl. Testroutinen. *freu* :banana:
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh