Kleine Verständnisfrage
-
Gegeben sei eine Klasse Matrix<T>.
Folgender Code bereitet Probleme (bei der Ausführung):void testBayReg(int system) { Matrix <double> matA = Matrix <double> (0,0); matA = Matrix <double> (30, 5); //[...]Wenn ich mit Pointern arbeite, funktioniert alles wunderbar.
void testBayReg(int system) { Matrix <double> *matA = new Matrix <double> (0,0); delete matA; matA = new Matrix <double> (30, 5); //[...]Woran liegt das genau?
-
Ramanujan schrieb:
Woran liegt das genau?
Woran liegt was? Du hast nicht mal dein Problem beschrieben.
..
Moment, meine Glaskugel ruft gerade an. Sie meint es wäre zwar noch etwas vernebelt, aber sie meint erkennen zu können, dass du keinen operator = für deine Matrix geschrieben hast.
-
edit: unpassend
-
cooky451 schrieb:
aber sie meint erkennen zu können, dass du keinen operator = für deine Matrix geschrieben hast.
thx^^
-
Ramanujan schrieb:
thx^^
Ich habe gerade einen Tee getrunken und aus den Blättchen am Grund der Tasse konnte ich sehen, dass du auch keinen Kopierkonstruktor geschrieben hast.
~(Man darf dies als Steilvorlage ansehen, noch einen dritten Beitrag dieser Art zu verfassen)~
-
SeppJ schrieb:
~(Man darf dies als Steilvorlage ansehen, noch einen dritten Beitrag dieser Art zu verfassen)~
wieso? der delete-Aufruf gibt doch keine Fehlermeldung aus *duckundweg*
-
SeppJ schrieb:
Ich habe gerade einen Tee getrunken und aus den Blättchen am Grund der Tasse konnte ich sehen, dass du auch keinen Kopierkonstruktor geschrieben hast.
Doch, den hatte ich schon.
-
Hallo SeppJ,
vllt. solltest du ihm gleich dann das passende Stichwort Regel der großen Drei geben

-
Die hab ich auch gerade schon gefunden, als ich nachgeguckt hab, welche Signatur der operator= hat.
Aber trotzdem danke.
-
SeppJ schrieb:
Ich habe gerade einen Tee getrunken und aus den Blättchen am Grund der Tasse konnte ich sehen, dass du auch keinen Kopierkonstruktor geschrieben hast.
Tja SeppJ, vielleicht solltest du wieder zu Glaskugeln wechseln, die erweisen sich momentan wirklich als erstaunlich zuverlässig.

Matrix <double> matA = Matrix <double> (0,0);